2012-08-31 43 views
2

我安裝了一個新的WSO2 ESB版本4.2.3(最後穩定到現在),我配置了JMS傳輸在axis2.xml文件如下:AXIS2:名字連接工廠的JNDI查找返回org.jboss.mq.SpyConnectionFactory而接口javax.jms.ConnectionFactory預計

<!-- 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> 

後,立即啓動過程中的錯誤已經發現:

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) 

我發現很多帖子裏的人說,除去...WEB-INF/lib/geronimo-jms_1.1_spec-1.1.0.wso2v1.jar的,因爲否則突觸不會與任何外部JMS經紀人一起工作(我也爲Mule ESB找到了同樣的答案),但對我來說這個解決方案不起作用。

問題非常類似to this link

任何幫助非常感謝。提前致謝。

回答

0

這是有點晚的答覆。但是,我也遇到同樣的錯誤,並且能夠fix.When試圖連接到從WSO2 ESB部署在JBoss服務器JMS隊列4.6.0,甚至與消除罐子Geronimo的jms_1.1_spec-1.1.0.wso2v1.jar,你提到的問題沒有解決。

的原因是,在您加入JBoss的相關罐子ESB /存儲庫/組件/ lib中,還有一些其他的瓶子,露出了的javax.jms實施。 。例如,在我的情況下,有兩個叫的jboss-j2ee.jar的和jbossall-client.jar中暴露的javax.jms額外的罐子。。我所做的是我開了兩個罐子和去除的javax.jms的暴露部分包*從both.Then問題是固定的。

謝謝;