के माध्यम से ActiveMQ का उपयोग करके मैं जेएनडीआई का उपयोग कर ActiveMQ से बस कनेक्ट करने की कोशिश कर रहा हूं। जेएनडीआई
मैं
कतार 'example.A' नाम दिया है।
ActiveMQ documentation touching JNDI के अनुसार, यदि मैं जेएनडीआई के माध्यम से कॉनक्शन फैक्ट्रीज और क्यूईज़ (टॉपिक्स) का उपयोग करना चाहता हूं, तो मुझे अपने क्लासपाथ पर jndi.properties फ़ाइल रखना होगा। जैसा कि मैंने समझा है, सक्रिय एमक्यू क्लासपाथ डिफ़ॉल्ट रूप से% activemq%/conf निर्देशिका है। मैंने इसे नहीं बदला है। तो मैं मेरी कतार के लिए इस संपत्ति है:
queue.MyQueue = example.A
मैं जो नीचे के रूप में JNDI का उपयोग करता ActiveMQ के लिए जावा ग्राहक वर्ग बनाया है:
Properties jndiParameters = new Properties() ; jndiParameters.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); jndiParameters.put(Context.PROVIDER_URL, "tcp://localhost:61616"); Context context = new InitialContext(jndiParameters); ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("ConnectionFactory"); Queue queue = (Queue) context.lookup("MyQueue");
लेकिन यह मेरी कतार नहीं पा रहा है, यह अपवाद फेंकता है: javax.naming.NameNotFoundException: MyQueue
मेरे गलत कहां हैं?
मुझे एक समान समस्या है, मैं jndi url और कनेक्शन फैक्ट्री को कॉन्फ़िगर कर सकता हूं लेकिन मैं अतिरिक्त गुण प्रदान नहीं कर सकता। इस तरह ऐसा लगता है कि कतार अंतराल परिभाषित नहीं किया गया है। यह काम करता है अगर मैं गतिशील क्यूई/टेस्ट का उपयोग करता हूं, लेकिन क्या स्थाई नामित गंतव्यों को संबोधित करना भी संभव है? – eckes