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: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org