0

大家好,我有这样的问题,我做了所有的事情,就像教程说的那样。所以现在我想查找我配置的主题和连接工厂,但它看不到它们。我做了类似的东西:

  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

4

2 回答 2

0

您如何创建主题资源?我遇到了类似的问题,解决方案是使用 Glassfish 命令行工具“asadmin”创建管理资源对象。使用 Glassfish 管理控制台创建它不起作用(导致 NameNotFoundException)。

我最终使用以下命令创建了我的队列资源:'create-admin-object –restype javax.jms.Queue –raname activemq-rar-5.7.0 –property PhysicalName=queueName queueName'

于 2012-12-22T16:20:53.943 回答
0

可能您缺少名称空间,您可以在 glassfish 控制台中查看确切的名称,但很可能应该是;

javax.jms.Topic mytopic = (javax.jms.Topic) ctx.lookup("java:amqmsg")
于 2012-07-17T20:20:29.677 回答