大家好我有这样的问题我做了tutorial这样的事情。所以现在我想查找我配置的主题和连接工厂,但它没有看到它们。我做了类似的事情:
try { Properties propertiesAMQ = new Properties(); propertiesAMQ.load(new FileInputStream("AMQ.properties")); logger.info("Property file loaded succesfully..."); propertiesAMQ.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); propertiesAMQ.setProperty(Context.PROVIDER_URL, "tcp://localhost:61616"); Context ctx = new InitialContext(propertiesAMQ); javax.jms.TopicConnectionFactory factory = (javax.jms.TopicConnectionFactory) ctx .lookup("amqpool"); javax.jms.Topic mytopic = (javax.jms.Topic) ctx.lookup("amqmsg")
}
并收到NameNotFoundException。如果我使用连接工厂的名称,如“ConnectionFactory”,它会没问题但是它不会看到我的主题我做错了什么?你有这个主题的其他例子吗?我正在使用glassfish 3.0.1和AMQ 5.5.0
答案 0 :(得分:0)
可能你错过了命名空间,你可以在glassfish控制台中查看确切的名称,但最有可能的应该是;
javax.jms.Topic mytopic = (javax.jms.Topic) ctx.lookup("java:amqmsg")
答案 1 :(得分:0)
如何创建主题资源?我有类似的问题,解决方案是使用Glassfish命令行工具'asadmin'创建管理资源对象。使用Glassfish管理控制台创建它不起作用(导致NameNotFoundException)。
我最终使用以下命令创建了我的Queu资源:'create-admin-object -restype javax.jms.Queue -raname activemq-rar-5.7.0 -property PhysicalName = queueName queueName'