0

默认情况下,来自 WSO2 代理服务的每条出站消息都由一个肥皂信封包装。

有可能通过配置删除它吗?我想要来自没有 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&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;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

4

2 回答 2

0

您可以使用

  format="pox" 

将 XML 发送到端点请参阅以下博客文章了解更多详细信息。

http://charithaka.blogspot.com/2010/07/message-format-transformations-with.html

于 2013-04-29T18:42:49.323 回答
0

您需要在发送调解器上方添加以下属性,以从消息中删除肥皂信封。

<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>
于 2016-01-19T08:42:44.000 回答