2009-10-19 38 views
2

我需要爲響應創建一個臨時隊列,但是我需要知道是否可以連接到臨時隊列,而不通過消息的setJMSReplyTo方法發送響應隊列對象,因爲答覆線程根本沒有獲得該對象。如何創建一個臨時的jms隊列並按名稱連接到它?

+1

更好地發佈您的答案作爲一個真正的答案並接受它。否則,您的問題將始終處於「未答覆」類別,並且會因爲它真的回答而被混淆。 – 2009-10-19 07:43:33

回答

2

我使用InitialContext對象將我的臨時隊列綁定到jndi,以便我可以從需要使用我的臨時隊列的線程中查找我的臨時隊列。

jndiContext = new InitialContext(); 
connectionFactory = (QueueConnectionFactory) jndiContext.lookup("ConnectionFactory"); 
connection = connectionFactory.createConnection(); 
connection.start(); 
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
temporaryQueue = session.createTemporaryQueue();  
jndiContext.bind(queueJndiName, temporaryQueue);  
destination = temporaryQueue; 
responseConsumer = session.createConsumer(destination); 
responseConsumer.setMessageListener(new MyListener()); 

爲了讓您只需要查找它的代碼,你需要使用臨時隊列:

Context jndiContext = new InitialContext(); 
queueConnectionFactory = (QueueConnectionFactory) jndiContext.lookup("ConnectionFactory"); 
queue = (Queue) jndiContext.lookup(youTemporaryQueueName);  
-1
asadmin> create-jms-resource --restype javax.jms.ConnectionFactory --description "connection factory for XXX" jms/ConnectionFactory 



asadmin> create-jms-resource --restype javax.jms.ConnectionFactory --description "connection factory for durable subscriptions" 
--property ClientId=MyID jms/DurableConnectionFactory 

命令創建的JMS資源成功執行。

在glassfish server.it中將成功創建。

相關問題