首页 文章

错误 - 与rabbitMQ的WSO2

提问于
浏览
0

在代理我有这个发送到rabbitMQ:

<property name="messageType" value="text/xml" scope="default"/>
         <property name="contentType" value="text/xml" scope="default"/>
         <property name="rabbitmq.attributes.app.id"
                   value="RMIS"
                   scope="axis2"
                   type="STRING"/>
         <property name="rabbitmq.attributes.type"
                   value="BRANCH"
                   scope="axis2"
                   type="STRING"/>
         <property name="rabbitmq.attributes.user.id"
                   value="RMIS"
                   scope="axis2"
                   type="STRING"/>
         <property name="MESSAGE_ID" expression="get-property('MessageID')"/>
         <script language="js">var messageID = mc.getProperty('MESSAGE_ID').substring(9,45);
         	mc.setProperty("RABBIT_MESSAGE_ID", messageID);</script>
         <property name="rabbitmq.attributes.custom.message.id"
                   expression="get-property('RABBIT_MESSAGE_ID')"
                   scope="axis2"/>
         <clone continueParent="true">
            <target sequence="writeToFile"/>
         </clone>
         <send>
            <endpoint key="rabbit"/>
         </send>

在ENDPOINT:

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="rabbit">
   <address uri="rabbitmq://writeToQueue?rabbitmq.server.host.name=localhost&rabbitmq.server.port=5672&rabbitmq.server.user.name=guest&rabbitmq.server.password=guest&rabbitmq.queue.name=queque" format="soap11">
      <suspendOnFailure>
         <progressionFactor>1.0</progressionFactor>
      </suspendOnFailure>
      <markForSuspension>
         <retriesBeforeSuspension>0</retriesBeforeSuspension>
         <retryDelay>3000</retryDelay>
      </markForSuspension>
      <timeout>
         <responseAction>fault</responseAction>
      </timeout>
   </address>
</endpoint>

但是当我把它发送到rabbitMQ服务器时,我发现了一个错误:

TID[-1234] [ESB] [2016-06-03 16:32:06,479] ERROR {org.apache.synapse.core.axis2.Axis2Sender} - Unexpected error during sending message out
org.apache.axis2.transport.rabbitmq.RabbitMQMessage.(RabbitMQMessage.java:43)
org.apache.axis2.transport.rabbitmq.RabbitMQSender.sendOverAMQP(RabbitMQSender.java:84)
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.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:185)
org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:167)
org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:542)
org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:79)
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:461)
org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:372)
org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:65)
org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:55)
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:105)
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)
org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:395)
org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142)
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

在那里登录WSO2 ESB:我没有收到任何错误 . ERROR_DETAIL : org.apache.synapse.SynapseException: Unexpected error during sending message out at org.apache.synapse.core.axis2.Axis2Sender.handleException(Axis2Sender.java:247) at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:91) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:461) at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:372) at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:65) at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:105) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149) at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:395) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at org.apache.axis2.transport.rabbitmq.RabbitMQMessage.&lt;init&gt;(RabbitMQMessage.java:43) at org.apache.axis2.transport.rabbitmq.RabbitMQSender.sendOverAMQP(RabbitMQSender.java:84) at org.apache.axis2.transport.rabbitmq.RabbitMQSender.sendMessage(RabbitMQSender.java:72) at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:185) at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:167) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:542) at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:79) ... 15 more

new stackTrace:`[2016-06-27 17:07:00,380]错误 - Axis2Sender发送消息时出现意外错误java.lang.IllegalStateException:配置无效:'routingKey'必须为非null . at com.rabbitmq.client.impl.AMQImpl $ Basic $ Publish . (AMQImpl.java:2278)at com.rabbitmq.client.AMQP $ Basic $ Publish $ Builder.build(AMQP.java:1219)at com.rabbitmq . client.impl.ChannelN.basicPublish(ChannelN.java:647)位于com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:630)com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java: 621)在org.apache.axis2.transport.rabbitmq.RabbitMQMessageSender.send(RabbitMQMessageSender.java:252)在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.ax is2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:542)在org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:79)在org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment . java:461)org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:372)位于org.apache.synapse.endpoints的org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:65)位于org.apache.synapse.mediators.AbstractListMediator.mediate的Org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:105)中的.IndirectEndpoint.send(IndirectEndpoint.java:55)(AbstractListMediator.java:81 )org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)org.apache.synapse.medi中的Org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)org.apache.synapse.core . org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)上的axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185) )org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:395)位于org.apache.axis2的org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) . transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at java . lang.Thread.run(Unknown Source)[2016-06-27 17:07:00,386] WARN - FaultHandler ERROR_CODE:0 [2016-06-27 17:07:00,386] WARN - FaultHandler ERROR_MESSAGE:发送消息时出现意外错误[2016-06-27 17:07:00,387] WARN - FaultHandler ERROR_DETAIL:org.apache.synapse.SynapseException:在org.apache.synapse.core.axis2.Axis2Sender.handleException(Axis2Sender.java)发送消息时出现意外错误: 247)org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:91)at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2Synaps) eEnvironment.java:461)org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:372)位于org.apache.synapse的org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:65) .endpoints.IndirectEndpoint.send(IndirectEndpoint.java:55)在org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:105)在org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java :81)位于org.apache.synapse的org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149) . core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185)在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)在org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker . java:395)在org.apache.axis2.t的org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) ransport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at java . lang.Thread.run(Unknown Source)引起:java.lang.IllegalStateException:配置无效:'routingKey'必须为非null . at com.rabbitmq.client.impl.AMQImpl $ Basic $ Publish . (AMQImpl.java:2278)at com.rabbitmq.client.AMQP $ Basic $ Publish $ Builder.build(AMQP.java:1219)at atcom.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:647)com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:630)com.rabbitmq.client.impl.ChannelN.basicPublish( ChannelN.java:621)org.apache.axis2.transport.rabbitmq.RabbitMQMessageSender.send(RabbitMQMessageSender.java:252)org.apache.axis2.transport.rabbitmq.RabbitMQSender.sendOverAMQP(RabbitMQSender.java:85)at org位于org.apache.axis2.engine.AxisEngine的org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)中的.apache.axis2.transport.rabbitmq.RabbitMQSender.sendMessage(RabbitMQSender.java:72) .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:542)at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:79)... 16更多

[2016-06-27 17:07:00,388] WARN - FaultHandler ERROR_EXCEPTION:org.apache.synapse.SynapseException:发送消息时出现意外错误[2016-06-27 17:07:00,388] WARN - FaultHandler FaultHandler:Endpoint [兔子] [2016-06-27 17:07:00,388]警告 - EndpointContext endpoints :兔子将被标记为SUSPENDED,因为它失败了

1 回答

  • 4

    将以下属性添加到Proxy的序列中 .

    <property name="OUT_ONLY" value="true"/>
    <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
    

    然后您的配置应如下所示:

    <property name="messageType" value="text/xml" scope="default"/>
         <property name="contentType" value="text/xml" scope="default"/>
         <property name="OUT_ONLY" value="true"/>
         <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
         <property name="rabbitmq.attributes.app.id"
                   value="RMIS"
                   scope="axis2"
                   type="STRING"/>
         <property name="rabbitmq.attributes.type"
                   value="BRANCH"
                   scope="axis2"
                   type="STRING"/>
         <property name="rabbitmq.attributes.user.id"
                   value="RMIS"
                   scope="axis2"
                   type="STRING"/>
         <property name="MESSAGE_ID" expression="get-property('MessageID')"/>
         <script language="js">var messageID = mc.getProperty('MESSAGE_ID').substring(9,45);
            mc.setProperty("RABBIT_MESSAGE_ID", messageID);</script>
         <property name="rabbitmq.attributes.custom.message.id"
                   expression="get-property('RABBIT_MESSAGE_ID')"
                   scope="axis2"/>
         <clone continueParent="true">
            <target sequence="writeToFile"/>
         </clone>
         <send>
            <endpoint key="rabbit"/>
         </send>
    

    根据新的stackTrace,提到“'routingKey'必须是非null的 . ”

    请添加“rabbitmq.exchange.name”参数和相关值 .

    例如:

    <endpoint>
         <address
         uri="rabbitmq:/AMQPProxy?rabbitmq.server.host.name=192.168.0.3&rabbitmq.server.port=5672&rabbitmq.server.user.name=user&rabbitmq.server.password=abc123&rabbitmq.queue.name=queue2&rabbitmq.exchange.name=exchange2"/>
      </endpoint>
    

    如果您需要进一步说明,请参阅WSO2文档:https://docs.wso2.com/display/ESB490/RabbitMQ+AMQP+Transport

相关问题