我有一些问题,因为文件不清楚..
我应该如何设置WSO2 ESB环境以便能够从WSO2 MessageBroker读取和写入消息 .
我跟着ConfigurewithWSO2MessageBroker
- 我在同一台服务器上有ESB和MB(MB有Offset = 2)/repository/conf/axis2/axis2.xml
....
<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
<parameter name="JMSTopic" locked="false">
<parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
</parameter>
<parameter name="JMSQueue" locked="false">
<parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
</parameter>
<parameter name="default" locked="false">
<parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
</parameter>
</transportReceiver>
...
和发件人部分
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender">
<parameter name="default" locked="false">
<parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">ConnectionFactory</parameter>
</parameter>
</transportSender>
jndi.properties文件
connectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://gst-esb-qa-01:5674'
connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://gst-esb-qa-01:5674'
connectionfactory.ConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://gst-esb-qa-01:5674'
queue.myQueue = myQueue
queue.testQueue= testQueue
topic.MyTopic = MyTopic
我的代理人
<proxy name="SendMessagetoJMSProxy" transports="http" startOnLoad="true">
<target>
<endpoint>
<address uri="jms:/myQueue?&transport.jms.DestinationType=queue"/>
</endpoint>
<inSequence>
<log level="custom">
<property name="STATE" value="message is sent to queue"/>
</log>
<property name="OUT_ONLY" value="true"/>
<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
</inSequence>
<outSequence/>
</target>
</proxy>
我的SOAP UI调用
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.samples" xmlns:xsd="http://services.samples/xsd">
<soapenv:Header/>
<soapenv:Body>
<ser:dummy>
<xsd:symbol>IBM</xsd:symbol>
</ser:dummy>
</soapenv:Body>
</soapenv:Envelope>
根据文档,我应该看到JMS Message Broker中的消息,但我得到了
构建Passthrough流时出错
TID [-1234] [ESB] [2017-05-16 12:52:47,137] ERROR - 构建Passthrough流org.apache.axiom.om时出错 . impl.builder.StAXOMBuilder.lookahead(StAXOMBuilder.java:711)org.apache.axiom.soap.impl.llom.SOAPBodyImpl.hasLookahead(SOAPBodyImpl.java:191)org.apache.axiom.soap.impl.llom.SOAPBodyImpl . getFirstElementLocalName(SOAPBodyImpl.java:217)org.apache.axiom.soap.impl.llom.SOAPBodyImpl.hasFault(SOAPBodyImpl.java:99)org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.hasFault(SOAPEnvelopeImpl.java: 305)org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:189)org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:137)org.apache . synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:100)org.apache.synapse.mediators.AbstractListMediator.buildMessage(AbstractListMediator.java:140)org.apache.synapse.mediators.AbstractListMediator.media te(AbstractListMediator.java:83)org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)org.apache . synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:210)org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker . java:403)org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)java.lang.Thread.run(Thread.java:745)
和
endpoints :地址为jms的AnonymousEndpoint:/ myQueue?&transport.jms.DestinationType = queue将被标记为SUSPENDED,因为它失败
243402 axis2.xml中的java.naming.provider.url参数是否相对于[ESB Home]位置?
我的案例服务器文件夹结构看起来像...
也许应该看起来像...... ????
<parameter name="java.naming.provider.url" locked="false">file:/home/wso2admin/wso2esb-5.0.0/repository/conf/jndi.properties</parameter>
SECOND : 是与Message Builder和Formater相关的错误????
任何帮助都会很好......我坚持了几天......
3 回答
First Question :axis2.xml中的java.naming.provider.url param是否相对于[ESB Home]位置?
不,您不需要添加ESB家庭位置 .
Second Question :这个错误与Message Builder和Formater有关????
是的,您收到消息构建器时出错 .
只需验证您是否添加了客户端jar并验证您的代理 . 请创建一个代理如下并尝试 .
示例代理:
参考:https://docs.wso2.com/display/ESB500/ESB+as+a+JMS+Producer
请尝试以下代理并检查您使用的URL格式
更多
https://docs.wso2.com/display/ESB500/ESB+as+a+JMS+Producer
https://docs.wso2.com/display/MB310/Integrating+WSO2+ESB
感谢Rajjaz和Jan ......
我创建了一个代理
我还想知道如果你在axis2.xml中为transportReceiver定义了默认的JMS配置部分就足以放入Queue的名字了
所以这也有效
现在我可以使用代理发布消息到JMS队列...
我很困惑(仍然)所有这些登录系统日志的来源和原因?!?
![
] 1