GlassFish上的独立ActiveMQ客户端

时间:2012-07-17 19:57:55

标签: java activemq glassfish-3

大家好我有这样的问题我做了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

2 个答案:

答案 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'