0
votes

Following the sample on WSO2 ESB site http://docs.wso2.org/display/ESB481/RabbitMQ+AMQP+Transport, I'm trying to create a proxy service that will receive a message via HTTP and post this message to a RabbitMQ 3.2.3 queue.

I've followed the steps on the tutorial to install p2-repo.zip and create this proxy service:

<?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>

When I try to post the message the exchange2/queue2 were added to my rabbit server, but the following exception is raised.

Is there anything that I'm missing?

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)
2
Can you add the following property to your endpoint and try? rabbitmq.queue.routing.keyudarakr
I changed my uri to: <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&amp;rabbitmq.queue.routing.key="/> And the same error appears on the logs...glm

2 Answers

0
votes

What is the ESB version you are using. If it is < 4.8.0 this issue is not fixed.

Here's the public jira - https://wso2.org/jira/browse/ESBJAVA-2449

0
votes

Here a workaround to solve this issue in WSO2 ESB 4.8.1. Seems that Content-Type is not defined properly, in this blog explain how to solve it using a Custom Mediator.

https://luispenarrubia.wordpress.com/2015/05/04/how-to-integrate-wso2-esb-and-rabbitmq-using-amqp-transport-part-2/

Regards.