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?
>>>
>>>
>>>
>>>
>>>

Reply via email to