[ https://issues.apache.org/jira/browse/AXIS2-5158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul Hodchenkov updated AXIS2-5158: ----------------------------------- Attachment: JSONMessageFormatter.java JSONMappedBuilder.java JSONBadgerfishMessageFormatter.java JSONBadgerfishBuilder.java ExtendedMappedXMLStreamWriter.java AbstractJSONMessageFormatter.java AbstractJSONBuilder.java > 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 > Attachments: AbstractJSONBuilder.java, > AbstractJSONMessageFormatter.java, ExtendedMappedXMLStreamWriter.java, > JSONBadgerfishBuilder.java, JSONBadgerfishMessageFormatter.java, > JSONMappedBuilder.java, JSONMessageFormatter.java > > > 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