[ 
https://issues.apache.org/jira/browse/AXIS2-5158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13151546#comment-13151546
 ] 

PNS edited comment on AXIS2-5158 at 11/16/11 9:52 PM:
------------------------------------------------------

Axis2 is too mainstream a technology to not support plain vanilla JSON ("Mapped 
JSON", if you prefer) and to require workarounds.

It is really surprising that we have reached version 1.6.1 without a permanent, 
transparent and working solution. From the brief minutes of the Vancouver 
meeting, there seems to be no intention to resolve in forthcoming releases, 
either.

The sooner this issue is dealt with, the better.
                
      was (Author: pns):
    Axis2 is too mainstream a technology to not support plain vanilla JSON 
("Mapped JSON", if you prefer) and to require workarounds. It is really 
surprising that we have reached version 1.6.1 without a permanent, transparent 
and working solution.

The sooner this issue is dealt with, the better.
                  
> Improve JSON support in Axis2
> -----------------------------
>
>                 Key: AXIS2-5158
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5158
>             Project: Axis2
>          Issue Type: Improvement
>          Components: json
>    Affects Versions: 1.6.1
>            Reporter: Paul Hodchenkov
>         Attachments: AbstractJSONBuilder.java, 
> AbstractJSONMessageFormatter.java, ExtendedMappedXMLStreamWriter.java, 
> JSONBadgerfishBuilder.java, JSONBadgerfishMessageFormatter.java, 
> JSONMappedBuilder.java, JSONMessageFormatter.java
>
>
> RawXMLInOutMessageReceiver can be only used in JSON services now [1].
> However, JSON/badgerfish builder can be improved by handling 
> RPCMessageReceiver correctly. I can't attach the patch because i have copy 
> pasted and created my own formatters and builders(please find the source 
> attached):
> 1) It is possible to solve the namespace problem described at [1] by 
> explicitly converting JSON/badgerfish to SOAP in JSONbadgerfish builder :
> public OMElement processDocument(InputStream inputStream, String contentType,
> MessageContext messageContext) throws AxisFault {
> ....
> AbstractXMLInputFactory inputFactory = new BadgerFishXMLInputFactory();
> XMLStreamReader xmlReader = inputFactory.createXMLStreamReader(
> new JSONTokener(IOUtils.toString(reader)));
> OMNodeEx document = (OMNodeEx) new 
> StAXOMBuilder(xmlReader).getDocumentElement();
> //removing parent
> document.setParent(null);
> //wrapping document with envelope
> SOAPFactory soapFactory = OMAbstractFactory.getSOAP11Factory();
> SOAPEnvelope soapEnvelope = soapFactory.getDefaultEnvelope();
> SOAPBody body = soapEnvelope.getBody();
> body.addChild(document);
> soapEnvelope.build();
>  //converting xml structure to soap xml structure,
> //this operation will construct SoapEnvelope,SoapBody,SoapFault instead of
> //regular OmElement
> StAXSOAPModelBuilder stAXSOAPModelBuilder = new 
> StAXSOAPModelBuilder(soapEnvelope.getXMLStreamReader(), null);
> return stAXSOAPModelBuilder.getSOAPEnvelope();
> ...
> }
> 2) jettison 1.2 has cool feature called setIgnoreNamespaces which allows to 
> use json formatter with any xml.
> We use the these builders and formatters successfully with JSON/badgerfish 
> request and JSON response.
> [1] http://isurues.wordpress.com/2009/10/06/how-to-use-axis2-json/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to