Wso2 AXIS2:JNDI对名称ConnectionFactory的查找返回了org.jboss.mq.SpyConnectionFactory,而需要一个接口javax.jms.ConnectionFactory

Wso2 AXIS2:JNDI对名称ConnectionFactory的查找返回了org.jboss.mq.SpyConnectionFactory,而需要一个接口javax.jms.ConnectionFactory,wso2,wso2esb,jbossmq,Wso2,Wso2esb,Jbossmq,我安装了一个新的WSO2 ESB版本4.2.3(到目前为止最稳定),并在axis2.xml文件中配置了JMS传输,如下所示: <!-- Configuration for JBoss 4.2.2 GA MQ --> <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener"> <parameter name="SMSOUTQueueConnectionFac

我安装了一个新的WSO2 ESB版本4.2.3(到目前为止最稳定),并在
axis2.xml
文件中配置了JMS传输,如下所示:

<!-- Configuration for JBoss 4.2.2 GA MQ -->
<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
    <parameter name="SMSOUTQueueConnectionFactory" locked="false">
            <parameter name="java.naming.factory.initial" locked="false">org.jnp.interfaces.NamingContextFactory</parameter>
            <parameter name="java.naming.factory.url.pkgs" locked="false">org.jboss.naming:org.jnp.interfaces</parameter>
            <parameter name="java.naming.provider.url" locked="false">jnp://192.168.10.125:1100</parameter>
            <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">ConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
            <parameter name="transport.jms.Destination" locked="true">queue/SMSOUTQueue</parameter>
    </parameter>
</transportReceiver>

org.jnp.interfaces.NamingContextFactory
org.jboss.naming:org.jnp.interfaces
jnp://192.168.10.125:1100
连接工厂
队列
队列/SMSOUTQueue
紧接着,在启动过程中发现一个错误:

15:09:16,585 INFO  [STDOUT] 15:09:16,585 ERROR [BaseUtils] JNDI lookup of name ConnectionFactory returned a org.jboss.mq.SpyConnectionFactory while a interface javax.jms.ConnectionFactory was expected
15:09:16,587 INFO  [STDOUT] 15:09:16,585 ERROR [ListenerManager] Couldn't initialize the jmstransport listener
org.apache.axis2.transport.base.BaseTransportException: JNDI lookup of name ConnectionFactory returned a org.jboss.mq.SpyConnectionFactory while a interface javax.jms.ConnectionFactory was expected
        at org.apache.axis2.transport.base.BaseUtils.handleException(BaseUtils.java:167)
        at org.apache.axis2.transport.jms.JMSUtils.lookup(JMSUtils.java:522)
        at org.apache.axis2.transport.jms.JMSConnectionFactory.<init>(JMSConnectionFactory.java:92)
        at org.apache.axis2.transport.jms.JMSConnectionFactoryManager.loadConnectionFactoryDefinitions(JMSConnectionFactoryManager.java:58)
        at org.apache.axis2.transport.jms.JMSConnectionFactoryManager.<init>(JMSConnectionFactoryManager.java:45)
        at org.apache.axis2.transport.jms.JMSListener.doInit(JMSListener.java:58)
        at org.apache.axis2.transport.base.AbstractTransportListenerEx.init(AbstractTransportListenerEx.java:62)
        at org.apache.axis2.engine.ListenerManager.init(ListenerManager.java:84)
        at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:386)
        at org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:273)
        at org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:117)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:916)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
15:09:16585信息[STDOUT]15:09:16585错误[BaseUtils]名称ConnectionFactory的JNDI查找返回了org.jboss.mq.SpyConnectionFactory,而需要一个接口javax.jms.ConnectionFactory
15:09:16587信息[STDOUT]15:09:16585错误[ListenerManager]无法初始化jmstransport侦听器
org.apache.axis2.transport.base.BaseTransportException:名称ConnectionFactory的JNDI查找返回了org.jboss.mq.SpyConnectionFactory,而需要一个接口javax.jms.ConnectionFactory
位于org.apache.axis2.transport.base.BaseUtils.handleException(BaseUtils.java:167)
位于org.apache.axis2.transport.jms.JMSUtils.lookup(JMSUtils.java:522)
位于org.apache.axis2.transport.jms.JMSConnectionFactory(JMSConnectionFactory.java:92)
位于org.apache.axis2.transport.jms.JMSConnectionFactoryManager.loadConnectionFactoryDefinitions(JMSConnectionFactoryManager.java:58)
位于org.apache.axis2.transport.jms.JMSConnectionFactoryManager。(JMSConnectionFactoryManager.java:45)
位于org.apache.axis2.transport.jms.JMSListener.doInit(JMSListener.java:58)
位于org.apache.axis2.transport.base.AbstractTransportListenerEx.init(AbstractTransportListenerEx.java:62)
位于org.apache.axis2.engine.ListenerManager.init(ListenerManager.java:84)
位于org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:386)
位于org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:273)
位于org.wso2.carbon.core.init.Preaxis2ConfitEmListener.bundleChanged(Preaxis2ConfitEmListener.java:117)
位于org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:916)
位于org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
位于org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
我发现很多帖子中都有人说要删除
…WEB-INF/lib/geronimo-jms_1.1_spec-1.1.0.wso2v1.jar
,因为否则synapse不能与任何外部jms代理一起工作(我发现同样的答案也适用于Mule ESB),但对我来说,这个解决方案不起作用

问题非常相似


非常感谢您的帮助。提前多谢。

回复有点晚。但我也遇到了同样的错误,并且能够修复。当尝试从WSO2 ESB 4.6.0连接到JBoss服务器中部署的JMS队列时,甚至删除了jar geronimo-JMS_1.1_spec-1.1.0.wso2v1.jar,您提到的问题也没有得到修复

原因是,在添加到ESB/repository/components/lib的jboss相关JAR中,还有一些其他JAR,公开了javax.jms的实现。。例如,在我的例子中,有另外两个jar,分别称为jboss-j2ee.jar和jbossall-client.jar,用于公开javax.jms。。我所做的是打开两个JAR,并从两个JAR中删除javax.jms.*的公开包部分。然后问题得到了解决

谢谢,