【发布时间】:2014-03-21 06:50:17
【问题描述】:
我正在尝试从本地客户端向 ESB 发送消息并将其重定向到同一服务器上的 MB。 消息传递给 MB。客户端等待响应,直到应用服务器抛出错误。
我的环境如下 WSO2 ESB 4.8.0(端口偏移 1) WSO2 MB 2.1.1(端口偏移 2) IBM WebSphere 应用服务器 8.5.5.1
ESB的代理服务配置
<proxy name="SMSQProdProxy" transports="http" startOnLoad="true" trace="enable">
<target>
<inSequence>
<property name="OUT_ONLY" value="true"/>
<send>
<endpoint>
<address uri="jms:/SMSQ?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=repository/conf/jndi.properties&transport.jms.DestinationType=queue"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
<publishWSDL key="gov:/trunk/services/SendToSMSQProxy.wsdl">
<resource location="SMSWSService_schema1.xsd"
key="gov:/trunk/services/SMSWSService_schema1.xsd"/>
</publishWSDL>
</proxy>
jndi.properties
connectionfactory.QueueConnectionFactory = amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5674'
connectionfactory.TopicConnectionFactory = amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5674'
queue.SMSQ = SMSQ
wso2-esb-errors.log
2014-03-21 14:18:54,276 [-] [HTTP-Listener I/O dispatcher-1] WARN SourceHandler Connection time out after request is read: http-incoming-3
wso2-esb-trage.log
INFO TRACE_LOGGER Proxy Service SMSQProdProxy
received a new message from : xx.xx.xx.xx
INFO TRACE_LOGGER Message To: /services/SMSQProdProxy
INFO TRACE_LOGGER SOAPAction:
INFO TRACE_LOGGER WSA-Action:
INFO TRACE_LOGGER Using the anonymous in-sequence of the proxy service for mediation
INFO TRACE_LOGGER Start : Sequence <anonymous>
INFO TRACE_LOGGER Sequence <SequenceMediator> :: mediate()
INFO TRACE_LOGGER Mediation started from mediator position : 0
INFO TRACE_LOGGER Start : Property mediator
INFO TRACE_LOGGER Setting property : OUT_ONLY at scope : default to : true (i.e. constant : true)
INFO TRACE_LOGGER End : Property mediator
INFO TRACE_LOGGER Start : Send mediator
INFO TRACE_LOGGER Sending message through endpoint : null resolving to address = jms:/SMSQ?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=repository/conf/jndi.properties&transport.jms.DestinationType=queue
INFO TRACE_LOGGER SOAPAction:
INFO TRACE_LOGGER WSA-Action:
INFO TRACE_LOGGER End : Send mediator
INFO TRACE_LOGGER End : Sequence <anonymous>
应用服务器的错误日志
java.io.IOException: Async IO operation failed (3), reason: RC: 55
感谢您的任何想法。
添加<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>后,我收到另一条错误消息
2014-03-26 22:17:23,354 [-] [http-nio-9443-exec-15] WARN AuthenticationHandler 在 [2014-03-26 22:17:23,0353] 的 IP 地址尝试非法访问尝试验证对服务 StatisticsAdmin 的访问时为 null 2014-03-26 22:17:23,354 [-] [http-nio-9443-exec-15] ERROR AUDIT_LOG Illegal access attempt at [2014-03-26 22:17:23,0353] from IP address null 尝试时验证对服务 StatisticsAdmin 的访问 2014-03-26 22:17:23,355 [-] [http-nio-9443-exec-15] 错误 StatisticsAdminClient 无法获取服务 SMSQProdProxy 的服务统计信息。后端服务器可能不可用。 org.apache.axis2.AxisFault:传入消息的输入流为空。
【问题讨论】:
-
您确定 repository/conf/jndi.properties 配置正确吗?
-
亲爱的 Jean,我在这篇文章中添加了 jndi.properties。谢谢。
-
Yohan,我不确定您要解决什么问题。消息没有发送到 MB 吗?您需要知道如何解决客户端超时问题吗?
-
亲爱的克里斯。 MB 确实收到了客户端发出的消息,但客户端不知道该过程已完成,并且仍在等待 ESB 的响应,直到超时。我不确定是否缺少任何东西,因此响应没有从 MB 发送到 ESB 或从 ESB 发送到客户端?