WSo2 ESB 4.0.3和JSON中的REST服务

问题描述:

我想使用一个REST服务在WSB403中吐出一个JSON输出,我一直非常不成功。我遵循下面链接中列出的步骤。WSo2 ESB 4.0.3和JSON中的REST服务

ESB and JSON

我已经加入了DynamicResponseModule和我有全局分配。

当我正常运行REST服务时,如预期的那样得到XML格式的输出,但是当我尝试添加“response=json”时,服务超时,我得到以下堆栈跟踪。

内部DynamicResponseModule应该映射此responseTypeapplication/JSON/Badgerfish,当它这样做时,我得到以下堆栈跟踪。

了java.lang.RuntimeException:从数据源元素的命名空间是 http://ws.apache.org/axis2,而不是预期在 org.apache.axiom.om.impl.llom.OMSourcedElementImpl.forceExpand(OMSourcedElementImpl.java:287) 在 org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getFirstOMChild(OMSourcedElementImpl.java:867) 在 org.apache.axiom.om.impl.OMNavigator._getFirstChild(OMNavigator.java:196) 在 有机.apache.axiom.om.impl.OMNavigator.updateNextNode(OMNavigator.java:140) at org.apache.axiom.om.impl.OMNavigator.getNext(OMNavigator.java: 112) 在 org.apache.axiom.om.impl.SwitchingWrapper.updateNextNode(SwitchingWrapper.java:1113) 在 org.apache.axiom.om.impl.SwitchingWrapper。(SwitchingWrapper.java:235) 在有机.apache.axiom.om.impl.OMStAXWrapper。(OMStAXWrapper.java:74)at org.apache.axiom.om.impl.llom.OMStAXWrapper。(OMStAXWrapper.java:52)at org.apache.axiom.om .impl.llom.OMContainerHelper.getXMLStreamReader(OMContainerHelper.java:51) 在 org.apache.axiom.om.impl.llom.OMElementImpl.getXMLStreamReader(OMElementImpl.java:736) 在 org.apache.axiom.om .impl.llom.OMElementImpl.cloneOMElement(OMElementImpl.java:1038) at org。 apache.synapse.util.MessageHelper.cloneSOAPEnvelope(MessageHelper.java:256) 在 org.apache.synapse.core.axis2.SOAPUtils.convertSOAP11toSOAP12(SOAPUtils.java:95) 在 org.apache.synapse.core。 axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:323) 在 org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:160) 在org.apache.axis2.engine.AxisEngine.receive(AxisEngine .java:181)at org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:275) at org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java :173) at java.util.c oncurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662 )这些是消息 格式器和构建器,我已经添加到axis2.xml class =“org.apache.axis2.json.JSONOMBuilder”/> class =“org.apache.axis2.json.JSONBadgerfishOMBuilder”/>
class =“org.apache.axis2.json。JSONOMBuilder “/>
类=” org.apache.axis2.json.JSONBadgerfishMessageFormatter “/>
类=” org.apache.axis2.json.JSONMessageFormatter“/>

任何想法,我我在这里失踪?

感谢

Narsi

你可以从样品激发[1]。(请注意,如果你想从JSON T开关o soap11,则必须将终端格式设置为soap11。)

在axis2.xml中使用json消息构建器和formtter以获取正确的内容类型(例如, application/json)

[1] http://wso2.org/project/esb/java/4.0.3/docs/samples/advanced_mediation_samples.html#Sample440