2014-04-13 5 views
6

मुझे निम्नलिखित जेएमएस उदाहरण के जेएनडीआई भाग को समझने में कठिनाई हो रही है।जेएनडीआई लुकअप इस जेएमएस उदाहरण में कैसे काम करता है?

public static void main(String[] args) { 
    try { 
     // Gets the JNDI context 
     Context jndiContext = new InitialContext(); 
     // Looks up the administered objects 
     ConnectionFactory connectionFactory = (ConnectionFactory) 
       jndiContext.lookup("jms/javaee7/ConnectionFactory"); 
     Destination queue = (Destination) jndiContext.lookup("jms/javaee7/Queue"); 
     // Sends a text message to the queue 
     try (JMSContext context = connectionFactory.createContext()) { 
      context.createProducer().send(queue, "Text message sent at " + new Date()); 
     } 
    } catch (NamingException e) { 
     e.printStackTrace(); 
    } 
} 

पुस्तक जहां मुझे यह उदाहरण मिला, इस जेएनडीआई लुकअप को संभव बनाने के लिए सेटअप का उल्लेख नहीं किया गया। उदाहरण के लिए,

ConnectionFactory connectionFactory = (ConnectionFactory) 
     jndiContext.lookup("jms/javaee7/ConnectionFactory"); 

में वहाँ इतना है कि jndiContext एक ConnectionFactory वस्तु पर भी नियंत्रण प्राप्त कर सकते हैं चल रहा है सर्वर किसी तरह का होना चाहिए? आम तौर पर, जेएनडीआई लुकअप के लिए काम करने के लिए किस तरह के सेटअप की आवश्यकता होती है?

बहुत बहुत धन्यवाद।

+0

यह बिना किसी सेटअप के काम करेगा, जब तक कि यह एक स्टैंडअलोन प्रोग्राम की बजाय वेबपैप का हिस्सा न हो। आपको परिभाषित करने की आवश्यकता होगी। शुरुआत के लिए एक प्रारंभिक संदर्भ कारखाना और एक संदर्भ यूआरएल। उदाहरण के लिए ओरेकल जेबीडीआई ट्यूटोरियल देखें। – EJP

+0

@EJP 'कनेक्शन फैक्टरी' लोड 'jndi.properties' कैसे करता है? जबकि एक [ldap उदाहरण] है (https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html#MULTI) मुझे जेएनडीआई ट्यूटोरियल में कोई समाधान नहीं मिला जो इस प्रश्न का उत्तर देता है। – Thufir

उत्तर

8

सामान्य रूप से, जेएनडीआई एक ऐसी सेवा है जो आवेदन द्वारा उपयोग की जाने वाली वस्तुओं का एक सेट प्रदान करती है। यह सेवा आमतौर पर एप्लिकेशन सर्वर या वेब सर्वर या समर्पित एलडीएपी सर्वर द्वारा प्रदान की जाती है। यदि आप जिस ट्यूटोरियल का पालन करने का प्रयास कर रहे हैं, वह वेब अनुप्रयोग के संदर्भ में जेएमएस ट्यूटोरियल को समझाता है, तो संभवतः एप्लिकेशन सर्वर (जैसे ग्लासफ़िश, जेबॉस) या वेब सर्वर (जैसे टोमकैट) में कुछ सेटअप किए जाने हैं। जेएनडीआई तक पहुंचने का तरीका भी प्रदाता पर निर्भर करता है। आमतौर पर, इसमें कॉन्फ़िगरेशन फ़ाइल शामिल होती है (या तो गुण फ़ाइल, या एक्सएमएल फ़ाइल)। जेएमएस का उपयोग करने का एक और विकल्प एक समर्पित जेएमएस प्रदाता जैसे ActiveMQ का उपयोग करना है। इस तरह, आपको किसी भी एप्लिकेशन सर्वर की आवश्यकता नहीं है। आपका आवेदन सिर्फ एक स्टैंडअलोन जावा एप्लिकेशन हो सकता है (यानी जरूरी नहीं कि एक वेब एप्लिकेशन)। जेएनडीआई के माध्यम से ActiveMQ द्वारा प्रदान की गई वस्तुओं तक पहुंचने के लिए यहां बताया गया है: https://activemq.apache.org/jndi-support.html। सामान्य जेएनडीआई ट्यूटोरियल: http://docs.oracle.com/javase/tutorial/jndi/

संबंधित मुद्दे