简体   繁体   English

WSO2 ESB无法调用ActiveMQ

[英]WSO2 ESB unable to invoke ActiveMQ

I am fairly new to the WSO2 ESB. 我对WSO2 ESB相当陌生。 Now I have to send messages to activemq queue withouth use of WSO2 Message broker. 现在,我必须在不使用WSO2消息代理的情况下将消息发送到activemq队列。

By this moment I added all jars that needed to CARBON_HOME/lib and started activemq with defauts as well as edited axis2.xml to enable jms transportSender 此时,我已将所有需要的jar添加到CARBON_HOME / lib中,并使用defauts和edited axis2.xml启动了activemq以启用jms transportSender

My in sequence looks like this: 我的顺序如下所示:

<inSequence>
      <log description="Log" level="full"/>
        <call>
            <endpoint>
                <address uri="jms:/QueueName?transport.jms.DestinationType=queue&amp;transport.jms.ContentTypeProperty=Content-Type&amp;java.naming.provider.url=tcp://localhost:61616&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;transport.jms.ConnectionFactoryType=queue&amp;transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory"/>
            </endpoint>
        </call>
    </inSequence

[2018-07-12 14:32:36,650] [] INFO - TimeoutHandler This engine will expire all callbacks after GLOBAL_TIMEOUT: 120 seconds, irrespective of the timeout action, after the specified or optional timeout [2018-07-12 14:33:07,253] [] ERROR - JMSSender Did not receive a JMS response within 30000 ms to destination : temp-queue://ID:NumbedPC-60591-1531395156918-1:1:1 with JMS correlation ID : ID:NumbedPC-60591-1531395156918-1:1:1:1:1 [2018-07-12 14:33:07,268] [] ERROR - Axis2Sender Unexpected error during sending message out org.apache.axis2.AxisFault: Did not receive a JMS response within 30000 ms to destination : temp-queue://ID:NumbedPC-60591-1531395156918-1:1:1 with JMS correlation ID : ID:NumbedPC-60591-1531395156918-1:1:1:1:1 at org.apache.axis2.transport.base.AbstractTransportSender.handleException(AbstractTransportSender.java:231) at org.apache.axis2.transport.jms.JMSSender.waitForResponseAndProcess(JMSSender.java:405) at org.apache.axis2.transport.jms.JMSSender.sendOverJMS(JMSSender.j [2018-07-12 14:32:36,650] []信息-TimeoutHandler在指定或可选的超时时间之后,此引擎将在GLOBAL_TIMEOUT之后的120秒内使所有回调失效,无论超时操作如何[2018-07-12 14:33 :07,253] []错误-JMSSender在30000毫秒内未收到对目标的JMS响应:temp-queue:// ID:NumbedPC-60591-1531395156918-1:1:1,JMS相关ID:ID:NumbedPC-60591- 1531395156918-1:1:1:1:1 [2018-07-12 14:33:07,268] []错误-Axis2Sender在发送消息到org.apache.axis2.AxisFault期间发生意外错误:未在30000内收到JMS响应到目的地的毫秒数:org-apache上的temp-queue:// ID:NumbedPC-60591-1531395156918-1:1:1与JMS相关ID:ID:NumbedPC-60591-1531395156918-1:1:1:1:1 org.apache.axis2.transport.jms.JMSSender.waitForResponseAndProcess(JMSSender.java:405)处的axis2.transport.base.AbstractTransportSender.handleException(AbstractTransportSender.java:231)在org.apache.axis2.transport.jms.JMSSender。 sendOverJMS(JMSSender.j ava:343) at org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:200) 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:595) at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:83) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:548) at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:382) at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:65) at org.apache.synap ava:343)在org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:200)在org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)在org.apache org.apache.synapse.core.axis2.DynamicAxisOperation $ DynamicOperationClient.send(DynamicAxisOperation.java:185)上的.axis2.engine.AxisEngine.send(AxisEngine.java:442)在org.apache.synapse.core.axis2.DynamicAxisOperation在org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:595)处的org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)处的$ DynamicOperationClient.executeImpl(DynamicAxisOperation.java:167) )在org.apache.synapse的org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:548)的org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:83)上。 org.apache.synapse上的endpoints.AbstractEndpoint.send(AbstractEndpoint.java:382).org.apache.synap上的endpoints.Addresspoint.send(AddressEndpoint.java:65) se.mediators.builtin.CallMediator.handleNonBlockingCall(CallMediator.java:246) at org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:115) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158) at org.apache.synapse.rest.Resource.process(Resource.java:343) at org.apache.synapse.rest.API.process(API.java:399) at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:123) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:101) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:69) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304) at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.j se.mediators.builtin.CallMediator.handleNonBlockingCall(CallMediator.java:246)在org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:115)在org.apache.synapse.mediators.AbstractListMediator.mediate( org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)的org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)的AbstractListMediator.java:97) org.apache.synapse.rest.API.process(API.java:399)上的.synapse.rest.Resource.process(Resource.java:343)org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java :123),位于org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:101),位于org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:69),位于org.apache.synapse.core。 org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.j)上的axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304) ava:78) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:326) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:372) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [2018-07-12 14:33:07,289] [] WARN - EndpointContext Endpoint : AnonymousEndpoint with address jms:/QueueName?transport.jms.DestinationType=queue&transport.jms.ContentTypeProperty=Content-Type&java.naming.provider.url=tcp://localhost:61616&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&t ava:78)org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:326)org.apache.synapse.transport.passthru.org.org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)上的.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:372)在org.apache.axis2.transport.base.threads.NativeWorkerPool位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)的$ 1.run(NativeWorkerPool.java:172)位于java.lang的java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) .Thread.run(Thread.java:748)[2018-07-12 14:33:07,289] []警告-EndpointContext端点:地址为jms的AnonymousEndpoint:/ QueueName?transport.jms.DestinationType = queue&transport.jms.ContentTypeProperty =的Content-Type&java.naming.provider.url的= TCP://本地主机:61616&java.naming.factory.initial的= org.apache.activemq.jndi.ActiveMQInitialContextFactory&吨 ransport.jms.ConnectionFactoryType=queue&transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory will be marked SUSPENDED as it failed [2018-07-12 14:33:07,290] [] WARN - EndpointContext Suspending endpoint : AnonymousEndpoint with address jms:/QueueName?transport.jms.DestinationType=queue&transport.jms.ContentTypeProperty=Content-Type&java.naming.provider.url=tcp://localhost:61616&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&transport.jms.ConnectionFactoryType=queue&transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory - current suspend duration is : 30000ms - Next retry after : Thu Jul 12 14:33:37 MSK 2018 ransport.jms.ConnectionFactoryType = queue&transport.jms.ConnectionFactoryJNDIName = QueueConnectionFactory会因为失败而被标记为已暂停[2018-07-12 14:33:07,290] []警告-EndpointContext暂停端点:地址为jms:/ QueueName?transport的AnonymousEndpoint。 jms.DestinationType =队列&transport.jms.ContentTypeProperty =的Content-Type&java.naming.provider.url的= TCP://本地主机:61616&java.naming.factory.initial的= org.apache.activemq.jndi.ActiveMQInitialContextFactory&transport.jms.ConnectionFactoryType =队列和运输。 jms.ConnectionFactoryJNDIName = QueueConnectionFactory-当前挂起持续时间是:30000ms-之后的下一次重试时间:2018年7月12日星期四14:33:37

Can anyone tell me what am I doing wrong? 谁能告诉我我在做什么错?

Your setup is assuming that after you send the JMS message, you will get a JMS response back in at most 30 seconds. 您的设置假设发送JMS消息后,您最多会在30秒内收到JMS响应。 So your setup is not sending JMS messages in 'fire and forget' style, but expecting a response back from the other side with the same correlation ID. 因此,您的设置不是以“即发即弃”样式发送JMS消息,而是期望从另一端返回具有相同相关ID的响应。 You can see this clearly here, in line 368 . 您可以在368行中清楚地看到这一点。

Check how to configure the <inSequence> <call> not to be blocking waiting for a response (if you need it). 检查如何配置<inSequence> <call>使其不阻塞等待响应(如果需要)。 Or if it is fire and forget set the <inSequence> to OUT_ONLY . 或者,如果起火了,忘记将<inSequence>设置为OUT_ONLY

You can follow this example here . 您可以在此处遵循此示例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM