当前位置: 首页 > 知识库问答 >
问题:

在wildfly8中创建jms桥的问题

靳高明
2023-03-14

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

我的独立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>

<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"/>
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个答案

梁宪
2023-03-14

我想通了。我需要将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>
 类似资料:
  • 我有一个旧的应用程序,它用ActiveMQ 5.8.0处理JMS消息,还有一些JNDI远程主题连接到这个ActiveMQ。 我有一个这样的连接器: 它工作得很好,但是现在,由于一些技术原因(严格的JMS 1.1),我需要使用“ConnectionFactory”而不是“TopicConnectionFactory”。在实际配置中,我被卡住了,因为ActiveMQ似乎使用了“TopicConnect

  • 我的代理配置是: 为什么这样?他们的jms配置有问题吗?请引导我。

  • 如果要在spring integration jms上为消息发布者创建qpid目标。例如,我可以创建如下队列: 之后,我将此队列设置为通道适配器: 如果发布者发送第一条消息,将在消息代理上创建队列。 但是如果我想动态设置队列,我能做什么呢? 发布者看起来像: } publisher方法的第二个参数是目标的名称。如果我在发送消息之前在brokerside上创建队列,那么这是可行的。我当前的解决方案是

  • 我使用的是WSO2 CEP V4.1.0。我已经创建了一个JMS接收器,它工作得很好,然后我尝试添加另一个JMS接收器,然后CEP给出了一个错误消息警报,但控制台中没有打印任何碳控制台消息。这是WSO2 CEP的bug吗? 错误消息屏幕帽如下所示 重现问题的步骤- null null 3.同时用于以下两个对象的JNDI属性 4.根据属性进行了高级属性映射。

  • 我已经做了什么: > 在Weblogic 11g节点上配置的JMS服务器 配置的外部服务器-AMQ连接工厂和绑定到本地JNDI的源队列对象(OK:Conn.工厂和队列对象可见于服务器JNDI树中) 用默认道具创建JMS桥(好吧-我想) 使用默认配置为目标目的地(Weblogic)创建了桥接目的地--在可能的情况下(OK:部署了资源适配器) 为源目标(AMQ)创建了桥接目标-JNDI属性,在可能的情

  • 我在域模式下运行Wildfly17。我们一直在手动添加JMS队列,但我宁愿将配置作为部署脚本的一部分添加。我可以使用创建服务器和数据源,但在队列方面似乎没有任何进展。我希望domain_config.xml的结尾如下所示: 我已经研究了如何在Wildfly中使用CLI设置消息传递子系统,但我得到的都是错误。 domain_config.xml的完整嵌套是:

  • null 对于谷歌来说,我们已经发现控制流与Azure和AWS相比是不同的。 对于Google来说,在等待接收消息之前,我们需要每次订阅和取消订阅给定的主题,而对于AWS和Azure来说,我们需要在打开MQTT连接时订阅一次。 问题: 有时5秒的设备超时发生,因为它无法从谷歌MQTT桥接收订阅主题的消息。添加多次重试来克服超时问题是不成功的,因为问题仍然存在,因为设备在开机后的设备操作45-60秒

  • 问题内容: 我在Windows上使用tomcat 6。这是我正在测试的代码。 我添加了所有库。运行文件时,出现以下错误- 我想念什么? 问题答案: 只需将其添加到您的命令行中: -Dphp.java.bridge.php_exec = / usr / bin / php 问题解决了!