当前位置: 首页 > 知识库问答 >
问题:

错误-WSO2带rabbitMQ

陆建木
2023-03-14

在proxy中,我要发送给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)

[2016-06-27 17:07:00,388]warn-faulthandler ERROR_EXCEPTION:org.apache.synapse.synapseexception:发送html" target="_blank">消息时出现意外错误[2016-06-27 17:07:00,388]warn-faulthandler FaultHandler:Endpoint[rabbit][2016-06-27 17:07:00,388]warn-endpointContext Endpoint:rabbit将被标记为挂起,因为它失败了`

共有1个答案

微生阳平
2023-03-14

将以下属性添加到代理的insequence中。

<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,它提到了“'routing key'必须是非空的”。

请添加“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 Governance Registry并启动它之后,我在以下过程中得到以下错误: 这些错误每30秒重复一次。不幸的是,该日志未指定要尝试锁定的文件。 我尝试使用对其进行排他锁定的方式在文件系统上找到所有文件,但找不到任何文件。另外,我尝试通过WSO2 GR源代码进行grepping,但没有找到关于此错误的参考。WSO2 Jira(https://wso2.org/jir

  • 我正在尝试调用一个简单的RESTFul API,它使用WSO2 ESB发布用户名和密码,但在尝试使用Postman调用它时没有得到响应: RESTFul API URL为: 要从ESB调用的URL是 我在WSO2 ESB中进行的API配置是 我发布了一个简单的JSON元素: WSO2控制台显示以下消息: Info-LogMediator到:http://www.w3.org/2005/08/add

  • 我正在尝试使用spring security和wso2 identity server 5.1.0集成(SSO)多个服务提供商。根据博客,我已经将spring security SAML示例与wso2集成在一起,仅针对一个服务提供商,并且运行良好,但我无法为多个服务提供商执行SSO。我什么都查过了,但运气不好。 请在下面找到我认为应该是什么,但我不知道如何实现这一点。 WSO2是:创建了一个具有唯

  • 问题内容: 我开始全新复制WSO2 API Manager 1.8,并无缘无故出现以下错误。 我怎样才能解决这个问题? 问题答案: 通过运行以下命令检查系统主机名 尝试ping到该主机名的输出。 如果那给出了错误,请检查文件。至少它应该具有主机条目127.0.0.1

  • 我正在建立一个测试实验室来学习更多关于WSO2应用的知识。我试图重新创建这里描述的场景:http://wso2.org/library/tutorials/2012/12/providing-xacml-fine-grained-authorization-webapps 我使用的是一台Windows 2008服务器,WSO应用程序都在不同的端口上监听。WSOIS的tryit功能表明策略正在正确评

  • 有人能帮我做这个吗? 我不知道错误是什么,也不知道我应该如何修复它。任何帮助都很感激