我的Glassfish服务器已启动并运行,我可以运行简单的JMS客户端程序,这些程序可以发送和检索消息到手动在Glassfish控制台中配置的队列和主题。
我正在忙着编写一个简单的JMSBrowser来研究JMS,并希望了解如何从java客户端检索被管理对象Server对象的名称(ConnectionFactory,Queues& Topics)。
例如,我的ConnectionFactory具有JNDI名称jms / __ defaultConnectionFactory,Queue jms / GlassFishBookQueue和主题jms / GlassFishBookTopic。
当我只知道资源类型(javax.jms.ConnectionFactory,javax.jms.Queue和javax.jms.Topic)时,如何检索这些名称
在这个例子中,我有各种各样的,但每个都可以是一个列表。
花了很多时间试图搞清楚,但无济于事。
应该可以像任何JMSBrowser一样提供这些信息,例如这个屏幕截图:
https://sourceforge.net/projects/jmstoolbox/
任何暗示都会受到赞赏。
答案 0 :(得分:1)
我是JMSToolBox的作者 JMS规范没有定义一种方法来使用服务器中定义的JMS工件,即创建/删除/列表。问题/主题/工厂等。 每个队列管理器都有自己专有的方式来公开这些功能。在JMSToolBox中,我通常使用JMX(在专有MBean的帮助下......),但有时它是连接和列出这些对象的专有代码。 如果您通过JNDI连接到队列管理器服务器,可能有一种方法可以列出JNDI树中的所有JMS假象,并根据某些专有模式确定它们所代表的对象的“种类”(Queue,ConnectionFactory等等)。 )
BTW,GlassFish嵌入了OpenMQ。 Here is the way it is done in JMSToolBox我希望这会有所帮助