moshi.JSONBuilder not building SOAP body from JSON
Stefan Traud <[email protected]> Wed, 12 Feb 2025 10:44:28 +0000 (UTC)
| Newsgroups | gmane.text.xml.axis.user |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_11581346_2085754191.1739357068340
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
We are investigating to enhance our running axis2 service with JSON support=
, i.e. to use JSON over SOAP to facilitate support non-java clients.
I'm doing feasibility checks for mapped JSON using the StockQuoteService fr=
om samples.quickstartadb in axis-1.8.2 (as described in JSON support in Axi=
s2 tutorial)
With the JSONOMBuilder this works as expected:axis2.xml:<messageBuilder con=
tentType=3D"application/json"=C2=A0class=3D"org.apache.axis2.json.JSONOMBui=
lder"/>
JSON message for operation 'getPrice':=C2=A0{"getPrice":{"symbol":"IBM"}}SO=
AP body in StockQuoteServiceMessageReceiverInOut.invokeBusinessLogic:
=C2=A0<soapenv:Body xmlns:soapenv=3D"http://schemas.xmlsoap.org/soap/envelo=
pe/"><getPrice xmlns=3D"http://quickstart.samples/xsd"><symbol>IBM</symbol>=
</getPrice></soapenv:Body>
However when I switch to the moshi.JSONBuilder, the SOAP Body will be empty=
:axis2.xml: <messageBuilder contentType=3D"application/json"=C2=A0class=3D"=
org.apache.axis2.json.moshi.JsonBuilder" />
SOAP body in StockQuoteServiceMessageReceiverInOut.invokeBusinessLogic:
=C2=A0 <soapenv:Body xmlns:soapenv=3D"http://schemas.xmlsoap.org/soap/envel=
ope/"/>
Getting the wrapped param with fromOM will then fail in
fromOM(
msgContext.getEnvelope().getBody().getFirstElement(),
samples.quickstart.service.adb.xsd.GetPrice.class);
with AxisFault "Cannot invoke "org.apache.axiom.om.OMElement.getXMLStreamRe=
aderWithoutCaching()" because "param" is null"
What am I missing? Can the moshi.JSONBuilder not be used for mapped JSON wi=
th ADB?
------=_Part_11581346_2085754191.1739357068340
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<html><head></head><body><div class=3D"yahoo-style-wrap" style=3D"font-fami=
ly:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div dir=
=3D"ltr" data-setdir=3D"false">We are investigating to enhance our running =
axis2 service with JSON support, i.e. to use JSON over SOAP to facilitate s=
upport non-java clients.</div><div dir=3D"ltr" data-setdir=3D"false"><br></=
div><div dir=3D"ltr" data-setdir=3D"false">I'm doing feasibility checks for=
mapped JSON using the StockQuoteService from samples.quickstartadb in axis=
-1.8.2 (as described in JSON support in Axis2 tutorial)</div><div dir=3D"lt=
r" data-setdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"false">W=
ith the JSONOMBuilder this works as expected:</div><div dir=3D"ltr" data-se=
tdir=3D"false">axis2.xml:</div><div dir=3D"ltr" data-setdir=3D"false"><div>=
<div style=3D"padding: 0px 0px 0px 2px;"><div style=3D"color: rgb(0, 0, 0);=
font-family: Consolas; font-size: 10pt;"><div style=3D"margin:0;"><mess=
ageBuilder contentType=3D"application/<span style=3D"text-decoration-line: =
underline; text-decoration-color: rgb(255, 128, 64); text-decoration-style:=
wavy;">json</span>" <span style=3D"font-size: 10pt;">class=3D"org.apa=
che.axis2.json.JSONOMBuilder"/></span></div><div style=3D"margin:0;" dir=
=3D"ltr" data-setdir=3D"false"><span style=3D"font-size: 10pt;"><span><span=
style=3D"color: rgb(0, 0, 0); font-family: "Helvetica Neue", Hel=
vetica, Arial, sans-serif;"><br></span></span></span></div><div style=3D"ma=
rgin:0;" dir=3D"ltr" data-setdir=3D"false"><span style=3D"font-size: 10pt;"=
><span><span style=3D"color: rgb(0, 0, 0); font-family: "Helvetica Neu=
e", Helvetica, Arial, sans-serif;">JSON message for operation 'getPric=
e': <span><span style=3D"padding: 0px 0px 0px 2px;"><span style=3D"col=
or: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><span style=3D"c=
olor:#2a00ff;">{"getPrice":{"symbol":"IBM"}}</span></span></span></span></s=
pan></span></span></div><div style=3D"margin:0;" dir=3D"ltr" data-setdir=3D=
"false"><span style=3D"font-size: 10pt;"><span><span style=3D"color: rgb(0,=
0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-ser=
if;"><span><span style=3D"padding: 0px 0px 0px 2px;"><span style=3D"color: =
rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><span style=3D"color=
:#2a00ff;"><span><span style=3D"color: rgb(0, 0, 0); font-family: "Hel=
vetica Neue", Helvetica, Arial, sans-serif; font-size: 13.3333px;">SOA=
P body in StockQuoteServiceMessageReceiverInOut.invokeBusinessLogic:<br>&nb=
sp;<span><span style=3D"padding: 0px 0px 0px 2px;"><span style=3D"color: rg=
b(0, 0, 0); font-family: Consolas; font-size: 10pt;"><soapenv:Body xmlns=
:soapenv=3D"http://schemas.xmlsoap.org/soap/envelope/"><getPrice xmln=
s=3D"http://quickstart.samples/xsd"><symbol>IBM</symbol><=
/getPrice></soapenv:Body></span></span></span></span></span></span=
></span></span></span></span></span></span></div><div style=3D"margin:0;" d=
ir=3D"ltr" data-setdir=3D"false"><span style=3D"font-size: 10pt;"><span><sp=
an style=3D"color: rgb(0, 0, 0); font-family: "Helvetica Neue", H=
elvetica, Arial, sans-serif;"><span><span style=3D"padding: 0px 0px 0px 2px=
;"><span style=3D"color: rgb(0, 0, 0); font-family: Consolas; font-size: 10=
pt;"><span style=3D"color:#2a00ff;"><span><span style=3D"color: rgb(0, 0, 0=
); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; f=
ont-size: 13.3333px;"><span><span style=3D"padding: 0px 0px 0px 2px;"><span=
style=3D"color: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><br=
></span></span></span></span></span></span></span></span></span></span></sp=
an></span></div><div style=3D"margin:0;" dir=3D"ltr" data-setdir=3D"false">=
<div><div dir=3D"ltr" data-setdir=3D"false" style=3D"color: rgb(0, 0, 0); f=
ont-family: "Helvetica Neue", Helvetica, Arial, sans-serif;">Howe=
ver when I switch to the moshi.JSONBuilder, the SOAP Body will be empty:</d=
iv><div dir=3D"ltr" data-setdir=3D"false" style=3D"color: rgb(0, 0, 0); fon=
t-family: "Helvetica Neue", Helvetica, Arial, sans-serif;">axis2.=
xml:</div><div dir=3D"ltr" data-setdir=3D"false" style=3D"color: rgb(0, 0, =
0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;"=
><div style=3D"padding: 0px 0px 0px 2px;"><div style=3D"font-family: Consol=
as; font-size: 10pt;"><div style=3D"margin: 0px;" dir=3D"ltr" data-setdir=
=3D"false"> <div><div style=3D"padding: 0px 0px 0px 2px;"><div style=3D"col=
or: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><div style=3D"ma=
rgin:0;"><messageBuilder contentType=3D"application/<span style=3D"text-=
decoration-line: underline; text-decoration-color: rgb(255, 128, 64); text-=
decoration-style: wavy;">json</span>" <span style=3D"font-size: 10pt;"=
>class=3D"org.apache.axis2.json.moshi.JsonBuilder" /></span></div><div s=
tyle=3D"margin:0;"><span style=3D"font-size: 10pt;"><br></span></div><div s=
tyle=3D"margin:0;" dir=3D"ltr" data-setdir=3D"false"><div dir=3D"ltr" data-=
setdir=3D"false"><span style=3D"color: rgb(0, 0, 0); font-family: "Hel=
vetica Neue", Helvetica, Arial, sans-serif; font-size: 13.3333px;">SOA=
P body in StockQuoteServiceMessageReceiverInOut.invokeBusinessLogic:</span>=
<br style=3D"color: rgb(0, 0, 0); font-family: "Helvetica Neue", =
Helvetica, Arial, sans-serif; font-size: 13.3333px;"><span style=3D"color: =
rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sa=
ns-serif; font-size: 13.3333px;"> </span> <span><span style=3D"padding=
: 0px 0px 0px 2px;"><span style=3D"color: rgb(0, 0, 0); font-family: Consol=
as; font-size: 10pt;"><soapenv:Body xmlns:soapenv=3D"http://schemas.xmls=
oap.org/soap/envelope/"/></span></span></span></div><div dir=3D"ltr" dat=
a-setdir=3D"false"><span><span style=3D"padding: 0px 0px 0px 2px;"><span st=
yle=3D"color: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><br></=
span></span></span></div><div dir=3D"ltr" data-setdir=3D"false"><span><span=
style=3D"color: rgb(0, 0, 0); font-family: "Helvetica Neue", Hel=
vetica, Arial, sans-serif; font-size: 13.3333px;">Getting the wrapped param=
with fromOM will then fail in<br></span></span><div><div style=3D"padding:=
0px 0px 0px 2px;"><div style=3D"color: rgb(0, 0, 0); font-family: Consolas=
; font-size: 10pt;"><p style=3D"margin:0;">fromOM(</p><p style=3D"margin:0;=
"> <span style=3D"color:#6a3e3e;">msgContext</span>.ge=
tEnvelope().getBody().getFirstElement(),</p><p style=3D"margin:0;"> =
samples.quickstart.service.adb.xsd.GetPrice.<span style=3D"co=
lor:#7f0055;font-weight:bold;">class</span>);</p></div></div></div><br></di=
v><div dir=3D"ltr" data-setdir=3D"false"><span><span style=3D"color: rgb(0,=
0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-ser=
if; font-size: 13.3333px;">with AxisFault "<span><span style=3D"padding: 0p=
x 0px 0px 2px;"><span style=3D"color: rgb(0, 0, 0); font-family: Consolas; =
font-size: 10pt;">Cannot invoke "org.apache.axiom.om.OMElement.getXMLStream=
ReaderWithoutCaching()" because "param" is null</span></span></span>"</span=
></span><br></div><div dir=3D"ltr" data-setdir=3D"false"><span><span style=
=3D"color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica=
, Arial, sans-serif; font-size: 13.3333px;"><br></span></span></div><div di=
r=3D"ltr" data-setdir=3D"false"><span><span style=3D"color: rgb(0, 0, 0); f=
ont-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-=
size: 13.3333px;"><span><span style=3D"color: rgb(0, 0, 0); font-family: &q=
uot;Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13.3333p=
x;">What am I missing? Can the moshi.JSONBuilder not be used for mapped JSO=
N with ADB?</span></span><br></span></span></div></div></div></div></div><b=
r></div></div></div></div></div><br></div><div style=3D"margin:0;" dir=3D"l=
tr" data-setdir=3D"false"><span style=3D"font-size: 10pt;"><span><span styl=
e=3D"color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetic=
a, Arial, sans-serif;"><span><span style=3D"padding: 0px 0px 0px 2px;"><spa=
n style=3D"color: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><s=
pan style=3D"color:#2a00ff;"><span><span style=3D"color: rgb(0, 0, 0); font=
-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-siz=
e: 13.3333px;"><span><span style=3D"padding: 0px 0px 0px 2px;"><span style=
=3D"color: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><br></spa=
n></span></span></span></span></span></span></span></span></span></span></s=
pan></div></div></div></div><br></div></div></body></html>
------=_Part_11581346_2085754191.1739357068340--