在 wso2esb 中创建 JMS 配置时出错 [英] Error while creating JMS configuration in wso2esb
问题描述
我正在使用 wso2esb4.7.0 和 wso2mb-2.2.0.我希望使用 wso2mb 创建 jms 代理服务.为此,我已经配置了 wso2mb 和 wso2esb,例如:
I'm using wso2esb4.7.0 and wso2mb-2.2.0. I wish to create jms proxy service using wso2mb. For this i have configured the wso2mb as well as wso2esb like :
Wso2esb 配置:(jndi.properties 的变化)
Wso2esb configuration : (changes in jndi.properties)
# register some connection factories
# connectionfactory.[jndiname] = [ConnectionURL]
connectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5673'
connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5673'
# register some queues in JNDI using the form
# queue.[jndiName] = [physicalName]
queue.MyQueue = MyQueue
axis2.xml 的变化:
changes in axis2.xml :
取消注释以下代码:
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/>
<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
<parameter name="myTopicConnectionFactory" 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="myQueueConnectionFactory" 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">ConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
</parameter>
</transportReceiver>
还将 andes-client-*.jar
和 geronimo-jms_1.1_spec-*.jar
从 $MB_HOME/client-lib 复制到 $ESB_HOME/repository/components/lib
also copied andes-client-*.jar
and geronimo-jms_1.1_spec-*.jar
from $MB_HOME/client-lib to $ESB_HOME/repository/components/lib
重新启动服务器.直到它工作正常.
re-started servers.Till it's working fine.
现在希望使用 jms 端口创建服务.它正在创建一个服务,但它立即进入有故障的服务并 esb 记录它显示如下错误:
Now wish to create a service with jms port. it is creating a service but immediately it goes to faulty service and esb logs it showing error like :
ERROR - JMSListener Unexpected error when configuring service SampleJMS for the JMS transport. It will be disabled for this transport and marked as faulty.
java.lang.NullPointerException
at org.apache.axis2.transport.jms.JMSListener.getConnectionFactory(JMSListener.java:132)
at org.apache.axis2.transport.jms.JMSEndpoint.loadConfiguration(JMSEndpoint.java:193)
at org.apache.axis2.transport.base.AbstractTransportListenerEx.startListeningForService(AbstractTransportListenerEx.java:153)
at org.apache.axis2.transport.base.AbstractTransportListener.internalStartListeningForService(AbstractTransportListener.java:213)
at org.apache.axis2.transport.base.AbstractTransportListener$2.serviceAdded(AbstractTransportListener.java:126)
at org.apache.axis2.transport.base.tracker.AxisServiceTracker.serviceAdded(AxisServiceTracker.java:212)
at org.apache.axis2.transport.base.tracker.AxisServiceTracker.start(AxisServiceTracker.java:188)
at org.apache.axis2.transport.base.AbstractTransportListener.start(AbstractTransportListener.java:178)
at org.apache.axis2.transport.base.AbstractTransportListenerEx.start(AbstractTransportListenerEx.java:83)
在重新启动时也会显示如下错误:
also while restarting it showing error like :
错误 - 名称 ConnectionFactory 的 BaseUtils JNDI 查找返回了 org.wso2.andes.client.AMQQueue,而接口应为 javax.jms.ConnectionFactory[2015-01-20 10:22:27,709] 错误 - ListenerManager 无法初始化 jmstransport 侦听器org.apache.axis2.transport.base.BaseTransportException:名称 ConnectionFactory 的 JNDI 查找返回了 org.wso2.andes.client.AMQQueue,而接口 javax.jms.ConnectionFactory 是预期的
ERROR - BaseUtils JNDI lookup of name ConnectionFactory returned a org.wso2.andes.client.AMQQueue while a interface javax.jms.ConnectionFactory was expected [2015-01-20 10:22:27,709] ERROR - ListenerManager Couldn't initialize the jmstransport listener org.apache.axis2.transport.base.BaseTransportException: JNDI lookup of name ConnectionFactory returned a org.wso2.andes.client.AMQQueue while a interface javax.jms.ConnectionFactory was expected
我的代理配置是:
<target>
<inSequence>
<property name="Action"
value="urn:placeOrder"
scope="default"
type="STRING"/>
<log level="full"/>
<send>
<endpoint>
<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<drop/>
</outSequence>
为什么会这样?他们的 jms 配置有问题吗?请指导我.
Why so? is their any problem with jms configuration? Please guide me.
推荐答案
在 jndi.properties 中,你已经定义了:
in jndi.properties, you've defined :
- QueueConnectionFactory
- TopicConnectionFactory
在axis.xml中,你使用:
and in axis.xml, you use :
- QueueConnectionFactory
- TopicConnectionFactory
- 并且,在默认部分,一个ConnectionFactory"
我不使用 WSO2MB 不知道这不是你的问题
I don't use WSO2MB by I wonder if this would not be your problem
这篇关于在 wso2esb 中创建 JMS 配置时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!