【发布时间】:2019-06-29 06:29:01
【问题描述】:
我正在尝试覆盖文档中概述的 JMS 连接属性: https://docs.wso2.com/display/EI640/Using+the+ESB+as+a+JMS+Producer
您可以在 JMS 连接 URL 中定义 JMS 队列名称和连接工厂参数。连接工厂参数的值取决于 JMS 代理的类型。
我在我的axis2.xml 文件中定义了多个队列连接工厂以支持多个队列管理器。但是下面的配置没有生效(消息没有发送到正确的队列环境):
<endpoint name="myEndpoint" xmlns="http://ws.apache.org/ns/synapse">
<address format="pox" uri="jms://MY_QUEUE_NAME?transport.jms.ConnectionFactoryJNDIName=MYQUEUEQCF"/>
</endpoint>
axis2配置与上面匹配:
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender">
<parameter name="myConnectionFactory" locked="false">
<parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">file:bindings</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">OTHERQCF</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
<parameter name="transport.jms.UserName" locked="false"></parameter>
<parameter name="transport.jms.Password" locked="false"></parameter>
</parameter>
<parameter name="secondConnectionFactory" locked="false">
<parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">file:bindings</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">MYQUEUEQCF</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
<parameter name="transport.jms.UserName" locked="false"></parameter>
<parameter name="transport.jms.Password" locked="false"></parameter>
</parameter>
</transportSender>
消息通过第一个连接工厂OTHERQCF,而不是按预期通过MYQUEUEQCF,因此它们被发送到错误的环境。使用的队列技术是 WebSphere MQ。
这是一个错误还是我遗漏了什么?
我也尝试了以下配置,但没有生效:
<endpoint name="myEndpoint" xmlns="http://ws.apache.org/ns/synapse">
<address format="pox" uri="jms://MY_QUEUE_NAME?transport.jms.ConnectionFactoryJNDIName=MYQUEUEQCF&java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory&java.naming.provider.url=file:bindings&transport.jms.DestinationType=queue"/>
</endpoint>
【问题讨论】:
-
在最新的 EI 版本 6.4.0 上运行