我的代码:
<filter xpath="get-property('statusFromClassMed')='Valid'">
<then>
<log level="custom">
<property name="InsideValidFilter" value="--------State is Valid-------"/>
</log>
<log level="custom">
<property name="STATE" value="message is sent to queue"/>
</log>
<property name="OUT_ONLY" value="true"/>
<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
***<send>
<endpoint key="jmsMBendpoint"/>
</send>***
<header name="To" action="remove"/>
<property name="RESPONSE" value="true" scope="default" type="STRING"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<payloadFactory>
<format>
<ns1:PostPublicationResponse xmlns:ns1="http://www.openoandm.org/xml/ISBM/">
<ns1:MessageID>$1</ns1:MessageID>
<ns1:MessageContent>$2</ns1:MessageContent>
</ns1:PostPublicationResponse>
</format>
<args>
<arg expression="get-property('getMessageIDFromClassMed')"/>
<arg expression="get-property('MessageContent')"/>
</args>
</payloadFactory>
***<send/>***
</then>
<else>
<log level="custom">
<property name="InsideNonValidFilter" value="--------State is InValid-------"/>
</log>
<header name="To" action="remove"/>
<property name="RESPONSE" value="true" scope="default" type="STRING"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<payloadFactory>
<format>
<soapenv:Fault xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Code>
<soapenv:Value>soapenv:Receiver</soapenv:Value>
</soapenv:Code>
<soapenv:Reason>
<soapenv:Text xml:lang="en-US">Invalid Parameter</soapenv:Text>
</soapenv:Reason>
<soapenv:Detail/>
</soapenv:Fault>
</format>
</payloadFactory>
<send/>
</else>
</filter>
我在In-Sequence中使用过滤器。如果过滤器为真,那么我必须将有效负载发送到我的端点中定义的消息代理队列,因此我使用发送中介,之后我必须将有效负载作为响应发送。但是由于使用了两个发送调解器,有时我会尝试使用try-it代理。如何解决这种情况? 还有一个问题?我在我的主题属性中传递了多个主题参数。但它只获得单一价值 提前致谢
答案 0 :(得分:0)
如果要将响应发送回客户端,请在第一个发送中介使用“receiveSequence”选项,您将收到响应。在该序列中,定义您的其他中介逻辑..
<send receive="recevingSeq">
<endpoint>
<address uri="https://localhost:9445/services/AppService" format="soap11"/>
</endpoint>
</send>