我正在尝试使用wso2 esb工具和tcp请求。我通过tcp协议将客户端的文本请求发送到代理服务。根据this,我从属性中介处捕获该文本值。这是我的客户
class TCPClient {
public static void main(String argv[]) throws Exception {
String delimiter = "|";
int modifiedSentence;
Socket clientSocket = new Socket("localhost", 6790);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
//String message2 = "WZ2OCS2:1:21:1:1:@1479122000#"+ delimiter;
String message2 = "Nuwan,34,Sama;Kuma,23,Sanga;Ara,78,siva"+ delimiter;
outToServer.writeBytes(message2);
outToServer.flush();
while ((modifiedSentence = inFromServer.read()) > -1){
System.out.print((char)modifiedSentence);
}
clientSocket.close();
}}
现在我需要转换这个
Nuwan,34岁,Sama;Kuma,23岁,Sanga;Ara,78岁,siva
值到json或xml。我尝试使用Data Mapper中介器和Smooks中介器。但我不能将文本请求设置为上述两个调解人。当我去尝试使用foreach中介时,我遇到了类似于this的问题。我尝试了很多方法,因为我can>如何解决这个问题。谢谢
发布于 2017-06-26 09:39:46
请看下面的示例:
<property name="TEXT" value="Nuwan,34,Sama;Kuma,23,Sanga;Ara,78,siva"/>
<script language="js"><![CDATA[
var resultXML = new XML(<sample></sample>)
var values=mc.getProperty("TEXT").split(',');
for each(var value in values) {
resultXML.appendChild(<value>{value}</value>);
}
mc.setPayloadXML(resultXML);
]]></script>它将返回此有效载荷:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<sample>
<value>Nuwan</value>
<value>34</value>
<value>Sama;Kuma</value>
<value>23</value>
<value>Sanga;Ara</value>
<value>78</value>
<value>siva</value>
</sample>
</S:Body>
</S:Envelope>根据您的需要调整此示例。
https://stackoverflow.com/questions/44755975
复制相似问题