【问题标题】:How to use WSO2 ESB to transform text messages into SOAP payloads via JMS如何使用 WSO2 ESB 通过 JMS 将文本消息转换为 SOAP 有效负载
【发布时间】:2014-09-05 00:59:02
【问题描述】:

我正在使用 WSO2 ESB 通过 JMS 侦听 MQ 队列,然后将接收到的多行文本消息转换为多个 SOAP 请求,但无法使其正常工作。

错误: TID:[0] [ESB] [2014-09-03 13:17:29,198] 错误 {org.apache.axis2.engine.AxisEngine} - 未找到操作的端点参考 (EPR) 和 WSA 操作 =无效的。如果此 EPR 以前可以访问,请联系服务器管理员。 {org.apache.axis2.engine.AxisEngine} org.apache.axis2.AxisFault:未找到操作的端点引用 (EPR) 是并且 WSA 操作 = null。如果此 EPR 以前可以访问,请联系服务器管理员。 在 org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:102)

这是我的代理配置供参考:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://ws.apache.org/ns/synapse">
   <proxy name="StockQuoteJmsProxy"
      transports="jms"
      startOnLoad="true"
      trace="disable">
  <target>
     <inSequence>
        <smooks config-key="smooks-key">
           <input type="text"/>
           <output type="xml"/>
        </smooks>
        <xslt key="transform-xslt-key"/>
        <log level="full"/>
        <iterate xmlns:m0="http://services.samples"
                 preservePayload="true"
                 attachPath="//m0:placeOrder"
                 expression="//m0:placeOrder/m0:order">
           <target>
              <sequence>
                 <header name="Action" value="urn:placeOrder"/>
                 <property name="OUT_ONLY" value="true"/>
                 <send>
                    <endpoint>
                       <address uri="http://localhost:9000/services/SimpleStockQuoteService" format="soap11"/>
                    </endpoint>
                 </send>
              </sequence>
           </target>
        </iterate>
     </inSequence>
     <outSequence/>
  </target>
  <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
  <parameter name="transport.jms.ContentType">
     <rules>
        <jmsProperty>contentType</jmsProperty>
        <default>text/plain</default>
     </rules>
  </parameter>
  <parameter name="transport.jms.ConnectionFactory">SQProxyCF</parameter>
   </proxy>
   <localEntry key="transform-xslt-key"
           src="file:repository/samples/resources/smooks/transform.xslt">
  <description/>
</localEntry>
   <localEntry key="smooks-key"
           src="file:repository/samples/resources/smooks/smooks-config.xml">
  <description/>
   </localEntry>
   <sequence name="fault">
  <log level="full">
     <property name="MESSAGE" value="Executing default 'fault' sequence"/>
     <property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
     <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
  </log>
  <drop/>
   </sequence>
   <sequence name="main">
  <in>
     <log level="full"/>
     <filter source="get-property('To')" regex="http://localhost:9000.*">
        <send/>
     </filter>
  </in>
  <out>
     <send/>
  </out>
  <description>The main sequence for the message mediation</description>
   </sequence>
</definitions>

请帮助我在这种情况下没有正确完成。非常感谢!

【问题讨论】:

    标签: wso2 esb


    【解决方案1】:

    您可能需要在翻译后,但在 .为此,您可以分配 ContentType axis2 属性:

    <property name="ContentType" value="application/xml" scope="axis2"/>
    

    如果这不起作用,附加完整的堆栈转储或 wso2carbon.log 将帮助我解决问题。

    谢谢, 科林

    【讨论】:

      【解决方案2】:

      对于那些感兴趣的人,这里是工作代理配置:

      <?xml version="1.0" encoding="UTF-8"?>
      <definitions xmlns="http://ws.apache.org/ns/synapse">
         <proxy name="TextToXmlProxy"
            transports="jms"
            startOnLoad="true"
            trace="disable">
        <target>
           <inSequence>
              <smooks config-key="smooks-key">
                 <input type="text"/>
                 <output type="xml"/>
              </smooks>
              <xslt key="transform-xslt-key"/>
              <log level="full"/>
              <iterate xmlns:m0="http://services.samples"
                       preservePayload="true"
                       attachPath="//m0:placeOrder"
                       expression="//m0:placeOrder/m0:order">
                 <target>
                    <sequence>
                       <header name="Action" value="urn:placeOrder"/>
                       <property name="OUT_ONLY" value="true"/>
                       <send>
                          <endpoint>
                             <address uri="http://localhost:9000/services/SimpleStockQuoteService"
                                      format="soap11"/>
                          </endpoint>
                       </send>
                    </sequence>
                 </target>
              </iterate>
           </inSequence>
           <outSequence>
              <send/>
           </outSequence>
           <faultSequence/>
        </target>
        <parameter name="transport.jms.ContentType">
           <rules>
              <jmsProperty>contentType</jmsProperty>
              <default>text/plain</default>
           </rules>
        </parameter>
        <parameter name="transport.jms.ConnectionFactory">SQProxyCF</parameter>
         </proxy>
         <localEntry key="transform-xslt-key"
                 src="file:repository/samples/resources/smooks/transform.xslt">
        <description/>
         </localEntry>
         <localEntry key="smooks-key"
                 src="file:repository/samples/resources/smooks/smooks-config.xml">
        <description/>
         </localEntry>
         <sequence name="fault">
        <log level="full">
           <property name="MESSAGE" value="Executing default 'fault' sequence"/>
           <property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
           <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
        </log>
        <drop/>
         </sequence>
         <sequence name="main">
        <in>
           <log level="full"/>
           <filter source="get-property('To')" regex="http://localhost:9000.*">
              <send/>
           </filter>
        </in>
        <out>
           <send/>
        </out>
        <description>The main sequence for the message mediation</description>
         </sequence>
      </definitions>
      

      【讨论】:

        猜你喜欢
        • 2020-02-24
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 1970-01-01
        • 2013-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多