Improve JSON support in Axis2
-----------------------------
Key: AXIS2-5158
URL: https://issues.apache.org/jira/browse/AXIS2-5158
Project: Axis2
Issue Type: Improvement
Components: databinding
Affects Versions: 1.6.1
Reporter: Paul Hodchenkov
RawXMLInOutMessageReceiver can be only used for JSON services for 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 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 pure 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]