我们最近将应用服务器从Glassfish改为Wildfly。对于Glassfish,我们使用QBrowser来监控我们的JMS队列,遗憾的是,该工具不能与Wildfly一起工作。
经过快速搜索,我找到了工具HermesJMS。尽管有很多关于如何使用它建立到JMS队列的连接的指南,但我找不到任何直接用于JBoss Wildfly应用服务器的东西。在大量阅读了不同的指南之后,我想我现在可以连接到wildfly服务器了,但是我就是无法连接到我的jms队列。
首先,我尝试通过JNDI InitialContext进行连接。下面是我对它的设置:
远程: org.jboss.naming.remote.client.InitialContextFactory initialContextFactory: http- providerURL: //本地主机: urlPkgPrefixes: org.jboss.naming.remote.client securityPrincipal: admin securityCredentials: admin
它确实可以连接,但我看到的只有我部署的web应用程序和一个"jms“文件夹。但它们都包含相同的web应用程序,再加上jms文件夹,并显示为一个红色圆圈,其中有一个白色的X。
因此,接下来我尝试通过"Create new JMS Session“手动设置一个会话,首选项如下:
会话: HornetQ插件: HornetQ属性:
绑定: jms/RemoteConnectionFactory远程: org.jboss.naming.remote.client.InitialContextFactory : initialContextFactory: initialContextFactory- providerURL: // urlPkgPrefixes: org.jboss.naming.remote.client
User: guest密码: pass
guest用户是我在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队列的替代监控工具?
谢谢你的帮助。
发布于 2016-01-07 01:24:24
要使用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发布于 2016-01-08 02:18:44
也许你可以看看sourceforge上的JMSToolbox:https://sourceforge.net/projects/jmstoolbox/?source=directory
发布于 2018-01-04 03:39:38
我最近重新审视了这一点,因为团队正在从glassfish (耶…)敬野蝇。我试过用wildfly9,它起作用了。我认为这是一个导出队列名称的问题。见下文
注意: wildfly9.2是带有hornetq的最终版本。wildfly 10++支持artemis。
https://stackoverflow.com/questions/29411329
复制相似问题