2015-03-02 32 views
0

我所需序列如下:WSO2 /突触服务链:分配从SOAP请求响应作为intput到另一个请求

  1. 阅读来自队列

  2. 消息变换

  3. 制作一个SOAP调用

  4. 输出对另一个队列的SOAP响应

步骤1,2,3可以正常工作,但是当步骤4中发送的消息(即我打算包含SOAP响应)为空时。我究竟做错了什么?

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
    name="JmsToWsdlJms" transports="https,http,jms"   statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
    <inSequence> 
     <enrich> 
      <source type="body" clone="true"/> 
      <target type="property" property="jms_body_text"/> 
     </enrich> 
     <property name="jms_body_text" 
      expression="get-property('jms_body_text')" 
      scope="default"/> 
     <xslt key="jmsMsgToSoapMsg_xslt"> 
      <property name="jms_text" expression="get-property('jms_body_text')"/> 
     </xslt> 
     <log level="full"> 
      <property name="After transformation" value="****"/> 
     </log> 
     <send> 
      <endpoint key="axisStockQuote"/> 
     </send> 
     <log level="full"> 
      <property name="After callout" value="****"/> 
     </log> 
     <property name="OUT_ONLY" value="true"/> 
     <send> 
      <endpoint key="jmsQueue2"/> 
     </send> 
    </inSequence> 
    </target> 
    <parameter name="transport.jms.ContentType"> 
    <rules> 
    <jmsProperty>contentType</jmsProperty> 
    <default>text/plain; charset=ISO-8859-1</default> 
    </rules> 
    </parameter> 
    <parameter name="transport.jms.DestinationType">queue</parameter> 
    <parameter name="transport.jms.Destination">cn=tro_Q_JMS1</parameter> 
</proxy> 

回答

0

您可以使用'发送接收'而不是发送中介。类似的,

<send receive="jmsQueue2Sequence"> 
     <endpoint key="axisStockQuote"/> 
    </send> 

这样axisStockQuote的响应将被发送到jmsQueue2Sequence。请参阅[1]了解更多信息。

[1] https://docs.wso2.com/display/ESB481/Send+Mediator

+0

接受的答案,虽然最后它变成了我有一个不同的问题:http://stackoverflow.com/questions/28838888/wso2-jms-to-wsdl-example-soap -call-是-非存在放置 – 2015-03-03 18:10:55