【问题标题】:WSO2 ESB connect to remote message broker queueWSO2 ESB 连接到远程消息代理队列
【发布时间】:2014-07-29 01:12:04
【问题描述】:

我已经设法从 wso2 esb 向本地消息代理队列发送消息。

但是,我无法将消息发送到远程队列。我想如果我将服务器包含在 JNDI.properties 中的物理队列名称中,这将起作用,但它不起作用。

任何人有任何建议从 ESB 向远程消息代理队列发送消息的配置是什么?

干杯 马卡

更多信息

我得到的错误是:- 错误 - 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?&amp;transport.jms.DestinationType=queue"/>
      </endpoint>
   </target>
   <description/>
</proxy>

【问题讨论】:

  • 你有代码要分享吗?你试过什么?
  • 第一次发帖,所以试着习惯格式化。 :-)

标签: wso2 wso2esb


【解决方案1】:

您的 JMS 地址中缺少一些信息。正确格式请参考https://docs.wso2.com/display/ESB481/ESB+as+a+JMS+Producer

【讨论】:

  • 感谢您的回复。看过文档。据我所知,我已在axis2.xml 文件中的传输发送方中包含所有正确信息。我认为可以在此处包含地址信息,而不是将其放入代理服务中的地址 uri 中?
  • 好的。所以你也做对了。但是,在您的 jndi.properties 文件中,URL 显示为 localhost。但是您的问题是,您想连接到远程消息代理。所以,网址是错误的。不是吗?
  • 好地方。会试一试,告诉你进展如何。
  • 我认为我应该将 localhost 替换为消息代理所在的服务器名称?
  • 是的。还要检查端口。
猜你喜欢
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 2012-06-05
  • 2012-10-11
  • 1970-01-01
  • 2017-02-12
  • 2019-01-07
  • 2018-10-24
相关资源
最近更新 更多