我已經通過在activemq.xml(ActiveMQ版本5.2.0)中配置它,如documentation中所述設置隊列。ActiveMQ:問題與隊列查找
<destinations>
<queue physicalName="FOO.BAR" />
<queue physicalName="DUMMY" />
</destinations>
我試圖從Java用下面的代碼訪問它(在同一主機上):
Hashtable properties = new Hashtable();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.activemq.jndi.ActiveMQInitialContextFactory");
properties.put(Context.PROVIDER_URL, "tcp://localhost:61616");
context = new InitialContext(properties);
factory = (ConnectionFactory) context.lookup("ConnectionFactory");
connection = factory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
queueName = "DUMMY"; // which can be either FOO.BAR or DUMMY
dest = (Destination) context.lookup(queueName);
我receveing下面的錯誤,雖然隊列中JConsole的可見( Tree/org.apache.activemq/Queue):
javax.naming.NameNotFoundException: DUMMY
請告訴我我做錯了什麼。非常感謝!
感謝您解釋創建主題/隊列並將其映射到JNDI上下文之間存在差異。我懷疑我們試圖解決的隊列/主題連接問題的根源在於創建== JNDI註冊的假設。 – 2009-11-17 21:11:45