默认情况下,来自WSO2代理服务的每个出站邮件都由soap信封包装。
是否有可能通过配置删除它? 我希望来自代理服务的转换消息没有SOAP信封。
我不想写另一个类来处理这个问题。
<proxy xmlns="http://ws.apache.org/ns/synapse" name="risresult" transports="https,http,jms" statistics="disable" trace="disable" startOnLoad="true">
<target>
<inSequence>
<property name="ContentType" value="text/plain" scope="default" type="STRING"/>
<class name="com.test.guru.HL7RISPrescription"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<send>
<endpoint>
<address uri="jms:/prescription?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616" format="pox" />
</endpoint>
</send>
</inSequence>
<outSequence>
<drop/>
</outSequence>
<faultSequence/>
</target>
<parameter name="transport.jms.ContentType">
<rules>
<jmsProperty>contentType</jmsProperty>
<default>application/xml</default>
</rules>
</parameter>
<description></description>
</proxy>
此致 领袖 @gnanagurus
答案 0 :(得分:0)
您可以使用
format="pox"
将XML发送到端点请参阅以下博客文章了解更多详情。
http://charithaka.blogspot.com/2010/07/message-format-transformations-with.html
答案 1 :(得分:0)
您需要在send mediator上方添加以下属性,以从邮件中删除soap信封。
<property name="messageType" value="application/xml" scope="axis2" type="STRING"/>
我使用以下示例代理对其进行了测试,它对我有用。
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="test"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="messageType"
value="application/xml"
scope="axis2"
type="STRING"/>
<log level="full"/>
<send>
<endpoint>
<address uri="http://www.google.com"/>
</endpoint>
</send>
</inSequence>
</target>
<description/>
</proxy>