Apache ActiveMQ非动态地连接到主题

时间:2011-02-01 16:50:33

标签: java static jms activemq

我已经设置了ActiveMQ,我可以使用“dynamicTopics / MyTopic”创建/连接主题。这非常有效:

    Properties env = new Properties( );
    env.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.apache.activemq.jndi.ActiveMQInitialContextFactory");
    env.setProperty(Context.PROVIDER_URL,"tcp://myhostname:xxxxx");
    javax.naming.Context ctx = new InitialContext(env);

    InitialContext jndi = new InitialContext(env);

    // Look up a JMS connection factory
    TopicConnectionFactory conFactory = (TopicConnectionFactory)jndi.lookup("TopicConnectionFactory");

    // Create a JMS connection
    TopicConnection connection = conFactory.createTopicConnection(username,password);

    Topic chatTopic = (Topic)jndi.lookup("dynamicTopics/MyTopic");

我想连接到一个已经存在的主题而不动态创建主题(如果它不存在),我该怎么办?

干杯,

皮特

2 个答案:

答案 0 :(得分:0)

您实际所做的只是连接到主题。 ActiveMQ非常好,如果以前不存在,它会为你创建主题。

因此,要连接到现有主题,只需执行与您正在执行的操作相同的操作。

答案 1 :(得分:0)

虽然您不需要使用AMQ手动创建目的地,但您始终拥有该选项。基本上,您可以更改安全设置以仅允许管理员创建目标。请参阅AMQ常见问题解答:

http://activemq.apache.org/how-do-i-create-new-destinations.html

此致

添 www.fusesource.com