2014-09-03 59 views
0

我正在使用WSO2 ESB通過JMS在MQ隊列上偵聽,然後將接收到的多行文本消息轉換爲多個SOAP請求,但無法生成工作沒有錯誤。如何使用WSO2 ESB通過JMS將文本消息轉換爲SOAP有效內容

錯誤: TID:[0] [ESB] [2014-09-03 13:17:29,198] ERROR {org.apache.axis2.engine.AxisEngine} - 操作的端點引用(EPR)不是找到並且WSA Action = null。如果先前可以訪問此EPR,請聯繫服務器管理員。 {org.apache.axis2.engine.AxisEngine} org.apache.axis2.AxisFault:找不到操作的端點引用(EPR),WSA操作=空。如果先前可以訪問此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> 

請什麼我還沒有在正確完成這個動作幫助案件。提前謝謝了!

回答

0

對於那些誰有興趣,這裏是工作代理配置:

<?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> 
0

您可能需要在翻譯之後但在之前定義文檔類型。要做到這一點,您可以指定將contentType Axis2的特性:

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

如果不工作,安裝一個完整的堆棧轉儲或wso2carbon.log會幫我解決它。

感謝, 科林

相關問題