[英]Populate payload with json values in wso2
我的有效载荷有问题。 我跟着https://docs.wso2.com/display/ESB500/Exposing+Several+Services+as+a+Single+Service
但无法创建适当的有效负载
<log level="custom">
<property expression="fn:concat('VIN: ',get-property('vin'),' ModelName: ',get-property('modelName'),' Year: ',get-property('modelYear'))" name="vechicle"/>
</log>
<payloadFactory description="VIN message" media-type="json">
<format>{
"VIN":$1,
}</format>
<args>
<arg evaluator="xml" expression="$ctx:vin"/>
</args>
</payloadFactory>
get-property('vin') 正在工作,因为我在日志中看到它但有效负载没有用实际值替换 $1,评估有问题
错误信息 :
Could not get parser from data source for element jsonObject
TID[-1234] [ESB] [2017-03-07 23:46:37,611] ERROR {org.apache.axiom.om.impl.llom.OMSourcedElementImpl} - Could not get parser from data source for element jsonObject org.apache.synapse.commons.staxon.core.base.AbstractXMLStreamReader.initialize(AbstractXMLStreamReader.java:245) org.apache.synapse.commons.staxon.core.json.JsonXMLStreamReader.(JsonXMLStreamReader.java:66) org.apache.synapse.commons.staxon.core.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:165) org.apache.synapse.commons.json.JsonUtil.getReader(JsonUtil.java:302) org.apache.synapse.commons.json.JsonDataSource.getReader(JsonDataSource.java:153) org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getDirectReader(OMSourcedElementImpl.java:225) org.apache.axiom.om.impl.llom.OMSourcedElementImpl.forceExpand(OMSourcedElementImpl.java:254) org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getFirstOMChild(OMSourcedElementImpl.java:867) org.apache.axiom.om.impl.OMNavigator._getFirstChild(OMNavigator.java:196) org.apache.axiom.om.impl.OMNavigator.updateNextNode(OMNavigator.java:140) 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) org.apache.axiom.om.impl.OMStAXWrapper.(OMStAXWrapper.java:74) org.apache.axiom.om.impl.llom.OMStAXWrapper.(OMStAXWrapper.java:52) 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) org.apache.synapse.util.MessageHelper.cloneSOAPEnvelope(MessageHelper.java:690)
帮助...
问题似乎出在 JSON 消息中。 首先,JSON 消息本身的格式无关紧要,因此回车应该已过时。 然而,这似乎不是问题。 其次,$1 后面有一个逗号,这表明会有另一个对象,但有一个回车,然后是右括号,这实际上是破坏解析器的原因:。 我会这样尝试(尽管您可以保留回车符,但我已经在 ESB 5.0.0 上测试了两者)
<payloadFactory description="VIN message" media-type="json">
<format>{
"VIN":$1
}</format>
<args>
<arg evaluator="xml" expression="$ctx:vin"/>
</args>
</payloadFactory>
此外,如果 vin 是一个字符串,那么您可能还需要在您的格式中添加引号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.