我使用的是Wso2esb 4.7.0 我们在这个集合中选择了一个带Json的属性 我们如何在xml中设置if 我们可以像这样设置
<property name="username"
expression="//username/text()"
scope="default"
type="STRING"/>
用于有效负载工厂
<payloadFactory>
<format>
<p:login xmlns:p="http://authentication.services.core.carbon.wso2.org">
<p:username>$1</p:username>
<p:password>$2</p:password>
<p:remoteAddress>$3</p:remoteAddress>
</p:login>
</format>
<args>
<arg expression="//username/text()"/>
<arg expression="//password/text()"/>
<arg expression="get-property('client_ip_address')"/>
</args>
</payloadFactory>
我们如何使用JSon实现它我尝试使用此属性
<property name="faisal" expression="$name/text()" scope="default"/>
但它不起作用,我们可以通过Wso2dss传递这个JSON,请告诉我
答案 0 :(得分:1)
如果您使用的是“ESB 4.7”,它会提供默认的“JSON”支持,这意味着应该会转换为“XML”。您将设置属性与传递的“XML”相同。
<login><username>JohnDoe</username><pass>yourPass</pass><login> == {“login”:{“username”: ”JohnDoe”, "pass" : "yourPass"}}
<property name="username"
expression="//login/username/text()"
scope="default"
type="STRING"/>
如果您希望保持“JSON”消息的完整性而不转换为可保存性能的XML,则可以使用“评估者”。您需要在服务器上执行一些操作才能启用此功能。取消评论'MessageFormatter'&amp; axis2.xml中的“MessageBuilder”(我提供的链接有这些细节)
<arg expression="$.login.username" evaluator="json"/>
详细说明&amp;示例:http://docs.wso2.org/wiki/display/ESB470/PayloadFactory+Mediator
答案 1 :(得分:1)
尽管您发送的是JSON输入消息,但ESB服务中传递的消息仍然是SOAP。因此,在这种情况下也可以使用相同的属性定义。
<property name="username"
expression="//username/text()"
scope="default"
type="STRING"/>