WSO2 ESB与MB一起使用

时间:2014-03-21 06:50:18

标签: wso2 wso2esb

我正在尝试从本地客户端向ESB发送消息,并将其重定向到同一服务器上的MB。 消息传达了MB。客户端正在等待响应,直到应用程序服务器抛出错误。

我的环境如下 WSO2 ESB 4.8.0(端口偏移1) WSO2 MB 2.1.1(端口偏移2) IBM WebSphere Application Server 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&amp;java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&amp;java.naming.provider.url=repository/conf/jndi.properties&amp;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读取请求后的连接超时: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:异步IO操作失败(3),原因: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来自IP地址的[2014-03-26 22:17:23,0353]非法访问尝试尝试验证对服务StatisticsAdmin的访问权限时为null   2014-03-26 22:17:23,354 [ - ] [http-nio-9443-exec-15] ERROR AUDIT_LOG尝试[2014-03-26 22:17:23,0353]从IP地址的非法访问尝试null验证对StatisticsAdmin服务的访问   2014-03-26 22:17:23,355 [ - ] [http-nio-9443-exec-15]错误StatisticsAdminClient无法获取服务SMSQProdProxy的服务统计信息。后端服务器可能不可用。   org.apache.axis2.AxisFault:传入消息的输入流为空。

存在类似的问题https://wso2.org/jira/browse/WSAS-1214

3 个答案:

答案 0 :(得分:0)

您可以在OUT_ONLY属性之后依次添加以下内容以返回到客户端。此属性将强制ESB使用HTTP 202响应客户端。

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

答案 1 :(得分:0)

勒芒, 您遇到的新错误似乎与MB集成流程无关。会话超时后您是否访问过管理控制台?你能不断重现这个问题吗?或者这只是一次?

答案 2 :(得分:-1)

当您将OUT_ONLY属性设置为true时,是在说,在代理结束后,您不必等待响应。因此,在outSequence中删除send中介者。

如果要强制代理将响应发送到客户端,请删除 Out_Only属性,并在inSequence中介者之后的endPoint部分中进行设置。

property name="FORCE_SC_ACCEPTED"  value="true"  scope="axis2"  type="STRING"

outSequence部分中保留<send/> mediator ...