See the code differences between org.apache.axis2.json.JSONOMBuilder and org.apache.axis2.json.moshi.JsonBuilder, the coding isn't too complicated.
I suggest creating a Jira issue, and if up to it coding a GitHub PR. I can help with the coding if you need it, and can test it. On Wed, Feb 12, 2025 at 9:52 AM robertlazarski <robertlazar...@gmail.com> wrote: > For SOAP in your example, it is a different implementation. The user guide > link is pure JSON without SOAP at all. > > On Wed, Feb 12, 2025 at 9:40 AM robertlazarski <robertlazar...@gmail.com> > wrote: > >> I use Moshi with Axis2 quite a bit at my day job, and the 2.0.0 release >> that is about to go out very soon has improved this area of Axis2. >> >> For 1.8.2 we have samples and a user guide for Moshi. It is based on >> Spring Boot but that is just for demonstration and it is not a requirement. >> This guide has been updated in our Axis2 GitHub repo. >> >> >> https://axis.apache.org/axis2/java/core/docs/json-springboot-userguide.html >> >> My best guess on your problem is an axis2.xml issue somehow, so a glance >> at the user guide axis2.xml is my suggestion. Also, the client needs that >> JSoN syntax. >> >> Let us know if you still need help. >> >> >> >> On Wed, Feb 12, 2025 at 12:45 AM Stefan Traud >> <stefan_tr...@yahoo.com.invalid> wrote: >> >>> 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 >>> from samples.quickstartadb in axis-1.8.2 (as described in JSON support in >>> Axis2 tutorial) >>> >>> With the JSONOMBuilder this works as expected: >>> axis2.xml: >>> <messageBuilder contentType="application/json" >>> class="org.apache.axis2.json.JSONOMBuilder"/> >>> >>> JSON message for operation 'getPrice': {"getPrice":{"symbol":"IBM"}} >>> SOAP body in StockQuoteServiceMessageReceiverInOut.invokeBusinessLogic: >>> <soapenv:Body >>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><getPrice >>> xmlns="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="application/json" >>> class="org.apache.axis2.json.moshi.JsonBuilder" >>> /> >>> >>> SOAP body in StockQuoteServiceMessageReceiverInOut.invokeBusinessLogic: >>> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ >>> "/> >>> >>> 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.getXMLStreamReaderWithoutCaching()" because >>> "param" is null" >>> >>> What am I missing? Can the moshi.JSONBuilder not be used for mapped JSON >>> with ADB? >>> >>> >>> >>> >>>