gpt4 book ai didi

wso2 - 如何使用 vfs JMS Sender 在 wso2 esb 代理中返回响应?

转载 作者:行者123 更新时间:2023-12-01 12:48:58 24 4
gpt4 key购买 nike

我在 WSO2 ESB 4.5.0 中有一个代理服务,它应该处理来自网络客户端的 SOAP 请求,将信息发送到 JMS 主题,然后响应网络客户端。

问题是,当我使用 JMS 发送器时,默认情况下它会在临时队列上等待响应。

要更改 JMS-Sender 的行为,我可以将 OUT_ONLY 设置为 true,但 Web 客户端根本不会收到响应。

即使我将 OUT_ONLY 设置为 true,是否有办法返回响应?

我能否将 JMS-Sender 设置为在不将 OUT_ONLY 发送为 true 的情况下不期待回复?

最佳答案

根据您的要求,您可能需要使用消息存储,请引用以下配置,它将消息存储在 JMSStore 中,并将确认发送回客户端(成功或失败),随后 ESB 使用前向调度处理器,它保证 JMSStore 中的存储消息将被传递到后端,并且在真正的 BE(可能是 JMS)失败的情况下它会退出,因此消息被传递因此它不会从消息存储中删除,这是一部分如何使用 WSO2 ESB 完成 DEAD LATTER CHANNELING

<proxy xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteProxy" transports="http" statistics="disable" trace="disable" startOnLoad="true">
<target>
<inSequence>
<property name="OUT_ONLY" value="true"/>
<property name="target.endpoint" value="JMSEP"/>
<property name="enableREST" value="true"/>
<store messageStore="JMSMS"/>
<payloadFactory>
<format>
<esbResponse xmlns="">
<text> added sccuessfully </text>
</esbResponse>
</format>
</payloadFactory>
<header name="To" action="remove"/>
<property name="RESPONSE" value="true" scope="default" type="STRING"/>
<send/>
</inSequence>
<faultSequence>
<makefault version="soap11">
<code xmlns:soap11Env="http://schemas.xmlsoap.org/soap/envelope/" value="soap11Env:VersionMismatch"/>
<reason value="test"/>
<role>MessageStoreFault</role>
<detail>MessageStoreFault</detail>
</makefault>
<send/>
</faultSequence>
</target>
<publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
<description></description>
</proxy>


<endpoint xmlns="http://ws.apache.org/ns/synapse" name="JMSEP">
<address uri="jms:/SimpleStockQuoteService?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616" format="pox">
<suspendOnFailure>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>0</retryDelay>
</markForSuspension>
<timeout>
<duration>1000</duration>
<responseAction>fault</responseAction>
</timeout>
</address>
</endpoint>

<messageStore name="JMSMS" class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
<parameter name="store.jms.destination">JMSMS</parameter>
<parameter name="store.jms.JMSSpecVersion">1.1</parameter>
<parameter name="store.jms.cache.connection">false</parameter>
</messageStore>

<messageProcessor name="Processor1" class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" messageStore="JMSMS" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="interval">4000</parameter>
</messageProcessor>

关于wso2 - 如何使用 vfs JMS Sender 在 wso2 esb 代理中返回响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com