使用WSO2 ESB从HTTP切换到RabbitMQ

使用WSO2 ESB从HTTP切换到RabbitMQ,wso2,rabbitmq,wso2esb,Wso2,Rabbitmq,Wso2esb,根据WSO2 ESB站点上的示例,我尝试创建一个代理服务,该服务将通过HTTP接收消息,并将该消息发布到RabbitMQ 3.2.3队列 我按照教程中的步骤安装p2-repo.zip并创建此代理服务: <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="SendRabbitProxy" transports="http"

根据WSO2 ESB站点上的示例,我尝试创建一个代理服务,该服务将通过HTTP接收消息,并将该消息发布到RabbitMQ 3.2.3队列

我按照教程中的步骤安装p2-repo.zip并创建此代理服务:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="SendRabbitProxy"
       transports="http"
       statistics="enable"
       trace="enable"
       startOnLoad="true">
   <target>
      <inSequence>
         <log level="full"/>
         <property name="OUT_ONLY" value="true"/>
         <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
      </inSequence>
      <endpoint>
         <address uri="rabbitmq:/SendRabbitProxy?rabbitmq.server.host.name=localhost&amp;rabbitmq.server.port=5672&amp;rabbitmq.server.user.name=guest&amp;rabbitmq.server.password=guest&amp;rabbitmq.queue.name=myqueue2&amp;rabbitmq.exchange.name=myexchange2"/>
      </endpoint>
   </target>
   <description/>
</proxy>

您正在使用的ESB版本是什么。如果小于4.8.0,则此问题不会得到解决


这里是公共jira-

这里是解决WSO2 ESB 4.8.1中此问题的解决方法。 似乎内容类型没有正确定义,在本博客中,我们将解释如何使用自定义中介解决它


尊敬。

您可以将以下属性添加到端点并重试吗?rabbitmq.queue.routing.keyI将我的uri更改为:并且日志上出现了相同的错误…我使用的是Wso2 ESB 4.8.1,您认为问题可能在p2-repo.zip上吗?请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(而不是另一个参考的中途停留,随着时间的推移,它往往会过时)。请考虑在这里添加一个独立的概要,保持链接作为参考。你是正确的。这里有两个问题,提供的链接解决了这个问题。1) RabbitMQ的终结点不正确。将exchange(rabbitmq.exchange.name=amq.direct)和routingkey(rabbitmq.queue.routing.key=myqueue2)添加到URL中。2) 正确添加内容类型标题。关注博客帖子。
TID[-1234] [ESB] [2014-02-27 22:51:07,470] ERROR
{org.apache.axis2.transport.base.threads.NativeWorkerPool} - Uncaught exception
org.apache.axis2.transport.rabbitmq.RabbitMQMessageSender.send(RabbitMQMessageSender.java:100)
org.apache.axis2.transport.rabbitmq.RabbitMQSender.sendOverAMQP(RabbitMQSender.java:85)
org.apache.axis2.transport.rabbitmq.RabbitMQSender.sendMessage(RabbitMQSender.java:72)
org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
 org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:482)
org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:59)
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:338)
org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:333)
org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:187)
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411)
org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:744)