我想在WSO2 ESB中将输入XML转换为JSON格式。 我尝试过使用属性介体,但它无法正常工作,
<property name="messageType" value="application/json" scope="axis2" type="STRING"></property>
<property name="Content-Type" value="application/json" scope="transport" type="STRING"></property>
答案 0 :(得分:1)
尝试此配置:
<inSequence>
...
</inSequence>
<outSequence>
<property name="messageType" value="application/json" scope="axis2"></property>
<respond/>
</outSequence>
答案 1 :(得分:0)
您只需要添加格式化程序(由messageType属性定义)来格式化消息。
<property name="messageType" value="application/json" scope="axis2" type="STRING"></property>
Content-Type属性用于将传入消息构建为SOAP格式,该格式在ESB中使用。如果传入消息是XML,则可以使用以下构建器。添加此属性不是强制性的,如果“Content-Type”与传入消息头一起发送,ESB会自动对其进行拍照并构建消息。
<property name="Content-Type" value="application/xml" scope="transport" type="STRING"></property>
还要确保在axis2.xml文件中启用了“application / json”消息格式化程序。这可以在repository / conf / axis2文件夹中找到。
答案 2 :(得分:0)
假设你的xml输入是,
<name>abc</name>
<id>123</id>
然后您需要将其转换为Json格式,
{
"name" : "abc",
"id" : "123"
}
您可以使用PayloadFactory介体将XML转换为JSON格式
<payloadFactory media-type="json">
<format>
{
"name" : "$1",
"id" : "$2"
}
</format>
<args>
<arg evaluator="xml" expression="//name"/>
<arg evaluator="xml" expression="//id"/>
</args>
</payloadFactory>
希望这会有所帮助!!