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;">&lt;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>"&nbsp;<span style=3D"font-size: 10pt;">class=3D"org.apa=
che.axis2.json.JSONOMBuilder"/&gt;</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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neu=
e&quot;, Helvetica, Arial, sans-serif;">JSON message for operation 'getPric=
e':&nbsp;<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: &quot;Helvetica Neue&quot;, 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: &quot;Hel=
vetica Neue&quot;, 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;">&lt;soapenv:Body xmlns=
:soapenv=3D"http://schemas.xmlsoap.org/soap/envelope/"&gt;&lt;getPrice xmln=
s=3D"http://quickstart.samples/xsd"&gt;&lt;symbol&gt;IBM&lt;/symbol&gt;&lt;=
/getPrice&gt;&lt;/soapenv:Body&gt;</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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;">axis2.=
xml:</div><div dir=3D"ltr" data-setdir=3D"false" style=3D"color: rgb(0, 0, =
0); font-family: &quot;Helvetica Neue&quot;, 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;">&lt;messageBuilder contentType=3D"application/<span style=3D"text-=
decoration-line: underline; text-decoration-color: rgb(255, 128, 64); text-=
decoration-style: wavy;">json</span>"&nbsp;<span style=3D"font-size: 10pt;"=
>class=3D"org.apache.axis2.json.moshi.JsonBuilder" /&gt;</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: &quot;Hel=
vetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, =
Helvetica, Arial, sans-serif; font-size: 13.3333px;"><span style=3D"color: =
rgb(0, 0, 0); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sa=
ns-serif; font-size: 13.3333px;">&nbsp;</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;">&lt;soapenv:Body xmlns:soapenv=3D"http://schemas.xmls=
oap.org/soap/envelope/"/&gt;</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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-=
size: 13.3333px;"><span><span style=3D"color: rgb(0, 0, 0); font-family: &q=
uot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, 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: &quot;Helvetica Neue&quot;, 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--