3

新しい 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>

その直後、起動中にエラーが見つかりました:

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 でも同じ回答が見つかりました)、を削除するよう人々が言う投稿をたくさん見つけましたが、私にとっては、この解決策は機能しません。

問題はこのリンクと非常によく似ています。

どんな助けでも大歓迎です。よろしくお願いします。

4

1 に答える 1

0

これは少し遅い返信です。しかし、私も同じエラーに遭遇し、修正できました。WSO2 ESB 4.6.0 から JBoss サーバーにデプロイされた JMS キューに接続しようとすると、jar geronimo-jms_1.1_spec-1.1.0.wso2v1.jar を削除しても、あなたが言及した問題は修正されていません。

その理由は、ESB/repository/components/lib に追加された jboss 関連の jar に、javax.jms の実装を公開している他の jar がいくつかあるためです。. たとえば、私の場合、javax.jms を公開する jboss-j2ee.jar と jbossall-client.jar という 2 つの追加の jar がありました。. 私がしたことは、2 つの jar を開き、両方から javax.jms.* の公開パッケージ部分を削除したことでした。その後、問題は修正されました。

ありがとう;

于 2013-05-04T00:55:32.690 に答える