在wildfly8中创建jms桥的问题

时间:2014-04-05 00:46:36

标签: jboss glassfish wildfly

我试图创建一个从WildFly 8到openmq的jms桥。我试过的每个例子都不起作用。有人能帮我吗。我以前从未创建过jms桥。

我的standalone-full.xml中的jms-bridge条目

            <source>

                <connection-factory name="jms/ConnectionFactory"/>

                <destination name="jms/TestQueue"/>

                <context>

                    <property key="java.naming.factory.initial" value="com.sun.enterprise.naming.SerialInitContextFactory"/>

                    <property key="java.naming.provider.url" value="mq://localhost:7676"/>

                </context>

            </source>

            <target>

                <connection-factory name="jmsConnectionFactory"/>

                <destination name="/"jms/TestQueue"/>

            </target>

            <quality-of-service>AT_MOST_ONCE</quality-of-service>

            <failure-retry-interval>500</failure-retry-interval>

            <max-retries>1</max-retries>

            <max-batch-size>500</max-batch-size>

            <max-batch-time>500</max-batch-time>

            <add-messageID-in-header>true</add-messageID-in-header>

        </jms-bridge>

我从imqjmsra.rar创建了一个模块。

module.xml

<resource-root path="fscontext.jar"/>

<resource-root path="imqbroker.jar"/>

<resource-root path="imqjmsbridge.jar"/>

<resource-root path="imqjmsra.jar"/>

<resource-root path="imqjmx.jar"/>

<resource-root path="imqstomp.jar"/>

    <!-- add the dependencies required by JMS Bridge code                -->

   <module name="javax.api" />

   <module name="javax.jms.api" />

   <module name="javax.transaction.api"/>

   <module name="javax.resource.api"/>

我得到的错误是

2014-04-04 14:36:04,846 WARN [org.hornetq.jms.server](pool-3-thread-1)HQ122010:无法连接JMS Bridge:javax.naming.NamingException:JBAS011843:实例化失败来自classloader的InitialContextFactory com.sun.enterprise.naming.SerialInitContextFactory来自本地模块加载器的模块“org.glassfish:main”的ModuleClassLoader @ 6b573f80(finder:local module finder @ 2d0a238e(roots:C:\ Installs \ JBoss \ wildfly-8.0。 0.Final \ modules,C:\ Installs \ JBoss \ wildfly-8.0.0.Final \ modules \ system \ layers \ base))[root异常是java.lang.ClassNotFoundException:com.sun.enterprise.naming.SerialInitContextFactory来自[模块“org.glassfish:main”来自本地模块加载器@ 6b573f80(finder:local module finder @ 2d0a238e(roots:C:\ Installs \ JBoss \ wildfly-8.0.0.Final \ modules,C:\ Installs \ JBoss \ wildfly-8.0.0.Final \模块\ SYSTEM \层\基))〕〕

at org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:116)

at org.jboss.as.naming.InitialContext.init(InitialContext.java:99)

at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:153) [rt.jar:1.7.0_45]

at org.jboss.as.naming.InitialContext.<init>(InitialContext.java:90)

at org.jboss.as.naming.InitialContextFactory.getInitialContext(InitialContextFactory.java:44)

at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) [rt.jar:1.7.0_45]

at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) [rt.jar:1.7.0_45]

at javax.naming.InitialContext.init(InitialContext.java:242) [rt.jar:1.7.0_45]

at javax.naming.InitialContext.<init>(InitialContext.java:216) [rt.jar:1.7.0_45]

at org.hornetq.jms.bridge.impl.JNDIFactorySupport.createObject(JNDIFactorySupport.java:53)

at org.hornetq.jms.bridge.impl.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:38)

at org.hornetq.jms.bridge.impl.JMSBridgeImpl.setupJMSObjects(JMSBridgeImpl.java:1217)

at org.hornetq.jms.bridge.impl.JMSBridgeImpl.setupJMSObjectsWithRetry(JMSBridgeImpl.java:1457)

at org.hornetq.jms.bridge.impl.JMSBridgeImpl.access$2000(JMSBridgeImpl.java:76)

at org.hornetq.jms.bridge.impl.JMSBridgeImpl$FailureHandler.run(JMSBridgeImpl.java:2046)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]

at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]

1 个答案:

答案 0 :(得分:1)

我明白了。我需要将module.xml文件更改为

<module xmlns="urn:jboss:module:1.0" name="org.glassfish">  
  <resources>  
    <resource-root path="glassfish-embedded-all-3.1.1.jar"/>
  </resources>  
  <dependencies>  
    <system export="true">
  <paths>
     <path name="sun/corba"/>       
  </paths>
    </system>
    <module name="javax.api" />
    <module name="javax.jms.api" />
    <module name="javax.transaction.api"/>
    <module name="javax.resource.api"/>
    <module name="javax.rmi.api"/>      
 </dependencies>  
</module>