我正在尝试熟悉 WSO2 ESB 4.7.0。作为简单的测试,我想使用代理服务将 JSON 转换为 XML。现在我已经了解 ESB 将 JSON 隐式转换为 XML。我创建了一个简单的中介,目的是将转换后的 XML 消息写入文件。不幸的是,JSON 到 XML 转换的结果是空的(文件中没有数据)。我是否理解 WSO2 的 JSON 功能有什么问题,或者我的中介有什么问题?
我的调解:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="MockJsonTest" transports="http https" startOnLoad="true" trace="disable">
<target>
<inSequence>
<property name="messageType" value="text/xml" scope="axis2" type="STRING"/>
<property name="ContentType" value="text/xml" scope="axis2" type="STRING"/>
<log level="full"/>
<property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
<property name="transport.vfs.ReplyFileName" value="filename.xml" scope="transport" type="STRING"/>
<send>
<endpoint>
<address uri="vfs:file:///C:/wso2">
<timeout>
<duration>0</duration>
<responseAction>discard</responseAction>
</timeout>
</address>
</endpoint>
</send>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
我的 curl 客户端使用 JSON 数据发布:
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"kind":"plus#person"}' http://mycomputer:8280/services/MockJsonTest
在axis2.xml中,我尝试了两种JSON格式化程序:
<!--messageFormatter contentType="application/json"
class="org.apache.axis2.json.JSONMessageFormatter"/-->
<messageFormatter contentType="application/json"
class="org.apache.axis2.json.JSONStreamFormatter"/>
亲切的问候,
平子