繁体   English   中英

REST服务中的WSo2 ESB 4.0.3和JSON

[英]WSo2 ESB 4.0.3 and JSON in REST service

我正在尝试使用REST服务在WSB403中吐出JSON输出,但我一直都非常失败。 我遵循以下链接中概述的步骤。

ESB和JSON

我已经添加了DynamicResponseModule并且已对其进行了全局分配。

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

在内部, DynamicResponseModule应该将此responseType映射到application/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)在org.apache.axiom org.apache.axiom.om.impl.OMNavigator.getNext(OMNavigator.java:112)上的.om.impl.OMNavigator.updateNextNode(OMNavigator.java:140)org.apache.axiom.om.impl.SwitchingWrapper.updateNextNode (org.apache.axiom.om.impl中的(SwitchingWrapper.java:1113).org.org.org.apache.axiom.om.impl.OMStAXWrapper.(OMStAXWrapper.java:74)中的SwitchingWrapper。(SwitchingWrapper.java:235)。 org.apache.axiom.om.impl.llom.OMStAXWrapper。(OMStAXWrapper.java:52)位于org.apache.axiom.om处的ap.apache.axiom.om.impl.llom.OMContainerHelper.getXMLStreamReader(OMContainerHelper.java:51) .impl.llom.OMElementImpl.getXMLStreamReader(OMEle mentImpl.java:736)(位于org.apache.axiom.om.impl.llom.OMElementImpl.cloneOMElement(OMElementImpl.java:1038)位于org.apache.synapse.util.MessageHelper.cloneSOAPEnvelope(MessageHelper.java:256) org.apache.synapse.core.axis2上的.apache.synapse.core.axis2.SOAPUtils.convertSOAP11toSOAP12(SOAPUtils.java:95)位于org.apache.synapse.core.axis2处的SOAP.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:323) .org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)上的.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:160)在org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:275) )在org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:173)在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)在java.util.concurrent java.lang.Thread.run(Thread.java:662)上的.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)这些是我添加到axi的消息格式化程序和构建器 s2.xml class =“ org.apache.axis2.json.JSONOMBuilder” /> class =“ org.apache.axis2.json.JSONBadgerfishOMBuilder” />
class =“ org.apache.axis2.json.JSONOMBuilder” />
class =“ org.apache.axis2.json.JSONBadgerfishMessageFormatter” />
class =“ org.apache.axis2.json.JSONMessageFormatter” />

知道我在这里想念什么吗?

谢谢

纳尔西

您可以从样本中得到启发[1]。 (请注意,如果要从json切换到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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM