我已设法从wso2 esb向本地消息代理队列发送消息 .
但是,我在将消息发送到远程队列时遇到问题 . 我想如果我将服务器包含在JNDI.properties中的物理队列名称中,这将起作用,但事实并非如此 .
任何人都有任何建议是什么配置从ESB发送消息到远程消息代理队列?
干杯马卡
Bit more information
我得到的错误是: - 错误 - AMQConnection Throwable收到但没有监听器设置:org.wso2.andes.client.AMQNoRouteException:错误:没有消息路由[错误代码312:无路由]
我正在使用的文件: -
jndi.properties
connectionfactory.ConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5673'
queue.myRemoteQueue = \\ServerName\myQueue
axis2.xml
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender">
<parameter name="default" locked="false">
<parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">ConnectionFactory</parameter>
</parameter>
</transportSender>
ESB代理服务
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="Test2JMS"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<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"/>
</inSequence>
<outSequence/>
<endpoint>
<address uri="jms:/myRemoteQueue?&transport.jms.DestinationType=queue"/>
</endpoint>
</target>
<description/>
</proxy>
1 回答
您缺少JMS地址中的一些信息 . 请参考https://docs.wso2.com/display/ESB481/ESB+as+a+JMS+Producer以获取正确的格式 .