将HermesJMS连接到Wildfly 8.2

时间:2015-04-02 11:02:17

标签: jboss jms wildfly

我们最近将Application Server从Glassfish更改为Wildfly。使用Glassfish,我们使用QBrowser监视我们的JMS队列,遗憾的是该工具不适用于Wildfly。

快速搜索后,我找到了工具HermesJMS。虽然有很多指南如何与它建立与JMS队列的连接,但我无法直接为JBoss Wildfly应用服务器找到任何东西。经过不同指南的大量阅读后,我想我现在可以连接到wildfly服务器,但我无法连接到我的jms队列。

首先,我尝试通过JNDI InitialContext连接。这是我的设置:

initialContextFactory:org.jboss.naming.remote.client.InitialContextFactory providerURL:http-remoting:// localhost: urlPkgPrefixes:org.jboss.naming.remote.client securityPrincipal:admin securityCredentials:admin

它确实连接但我看到的只是我部署的Web应用程序和“jms”文件夹。但它们都包含相同的web应用程序以及jms文件夹,并显示为带有白色X的红色圆圈。

接下来,我尝试通过“使用以下首选项创建新的JMS会话”手动设置会话:

会议:HornetQ 插件:HornetQ 属性:

绑定:jms / RemoteConnectionFactory initialContextFactory:initialContextFactory:org.jboss.naming.remote.client.InitialContextFactory providerURL:http-remoting:// localhost: urlPkgPrefixes:org.jboss.naming.remote.client

用户:访客密码:传递

访客用户是我在Wildfly中作为应用程序用户创建的用户

当我双击其中一个队列时,它表示没有这样的队列。

javax.jms.JMSException: There is no queue with name java:jboss/jms/queue/ngsEmailProvRequestQueue
at org.hornetq.jms.client.HornetQSession.createQueue(HornetQSession.java:397)
at hermes.impl.jms.SimpleDestinationManager.createDesintaion(SimpleDestinationManager.java:60)
at hermes.impl.JNDIDestinationManager.createDesintaion(JNDIDestinationManager.java:105)
at hermes.impl.jms.SimpleDestinationManager.getDestination(SimpleDestinationManager.java:137)
at hermes.impl.jms.AbstractSessionManager.getDestination(AbstractSessionManager.java:387)
at hermes.impl.DefaultHermesImpl.getDestination(DefaultHermesImpl.java:323)
at hermes.browser.tasks.BrowseDestinationTask.invoke(BrowseDestinationTask.java:122)
at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175)
at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170)
at java.lang.Thread.run(Thread.java:745)

有人知道我错过了什么吗?是否有可能让HermesJms与Wildfly合作?如果没有,那么JMS队列是否有替代监控工具?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

要使用Wildfly,请按照以下文档:https://developer.jboss.org/wiki/UsingHermesJMSWithHornetQ

第二部分:Configuring HermesJMS for JBoss7 / EAP6 with HornetQ

并更改这些值:

binding=jms/RemoteConnectionFactory

initialContextFactory=org.jboss.naming.remote.client.InitialContextFactory

providerURL=http-remoting://localhost:8080

urlPkgPrefixes=org.jboss.naming.remote.client

在目的地,也改变:

Name: sample

Domain: QUEUE

答案 1 :(得分:0)

也许您可以查看sourceforge上的JMSToolbox:https://sourceforge.net/projects/jmstoolbox/?source=directory

答案 2 :(得分:0)

我最近重新审视了这个,因为团队正在从玻璃鱼(yaye ......)转向野生蝇。我尝试使用wildfly9并且它有效。 我认为这是导出队列名称的问题。见下文

  1. java:/ jms / queue / test不起作用

  2. java:jboss / exported / jms / queue / test works

  3. 注意:wildfly9.2是具有hornetq的最终版本。 wildfly 10 ++支持artemis。