我们最近将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队列是否有替代监控工具?
感谢您的帮助。
答案 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并且它有效。 我认为这是导出队列名称的问题。见下文
java:/ jms / queue / test不起作用
java:jboss / exported / jms / queue / test works
注意:wildfly9.2是具有hornetq的最终版本。 wildfly 10 ++支持artemis。