java टॉमकेट 5.5.x में एम्बेडेड जेबीस के साथ जेएनडीआई को कॉन्फ़िगर करने में सहायता करें




jboss seam (3)

जब मैं अपने कोड में निम्न लुकअप का प्रयास करता हूं:

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
return (DataSource) envCtx.lookup("jdbc/mydb"); 

मुझे निम्नलिखित अपवाद मिलता है:

java.sql.SQLException: QueryResults: Unable to initialize naming context: 
    Name java:comp is not bound in this Context at 
    com.onsitemanager.database.ThreadLocalConnection.getConnection
    (ThreadLocalConnection.java:130) at     
    ...

मैंने जेबस विकी निर्देशों के बाद एम्बेडेड जेबोस स्थापित किया। और कॉन्फिगरेशन विकी पृष्ठ में निर्दिष्ट के अनुसार "डिफ़ॉल्ट रूप से प्रत्येक युद्ध स्कैनिंग" तैनाती का उपयोग करके मैंने टोमकैट को कॉन्फ़िगर किया था

कॉन्फ़िग पेज का हवाला देते हुए:

JNDI

एंबेडेड जेबॉस घटकों जैसे कनेक्शन पूलिंग, ईजेबी, जेपीए, और लेनदेन सेवाओं को प्रकाशित करने के लिए जेएनडीआई का व्यापक उपयोग करते हैं। एंबेडेड जेबोस टोमकैट के जेएनडीआई इंस्टालेशन के शीर्ष पर खुद को थोपने के द्वारा टोमकैट के जेएनडीआई कार्यान्वयन को ओवरराइड करता है। इसके लिए कुछ कारण हैं:

  1. Server.xml के भीतर इनमें से प्रत्येक सेवा को घोषित करने से बचने के लिए
  2. जावा के बेकार एकीकरण की अनुमति के लिए: वेब ऐप्स और ईजेबी के बीच कम्पोज नेमस्पेस।
  3. टोमकैट के जेएनडीआई कार्यान्वयन में कुछ महत्वपूर्ण बग हैं जो कुछ जेबीस घटकों को काम करने की क्षमता में बाधा पहुंचाते हैं
  4. हम ईजेबी और अन्य सेवाओं को रिमोट करने का विकल्प प्रदान करना चाहते हैं जो> दूरस्थ रूप से देखा जा सकता है

किसी के पास कोई भी विचार है कि मैं कैसे जेबस नामकरण सेवा को कॉन्फ़िगर कर सकता हूं, जो कि उपर्युक्त बोली के अनुसार टोमकैट के जेएनडीआई कार्यान्वयन को ओवरराइड कर रहा है ताकि मैं जावा पर क्लिक कर सकूं: comp / env?

एफवाईआई - मेरा वातावरण टॉमकेट 5.5.9, सीम 2.0.2 एसपी, एम्बेडेड जेबोस (बीटा 3),

नोट: मेरे डेटाबेस कनेक्शन के लिए मेरे पास एक- dds.xml फ़ाइल है जो निर्देशों के अनुसार कक्षा पथ पर व्यवस्थित और पहुंच योग्य है।

यह भी ध्यान रखें: मैंने इस सवाल को एम्बेडेड जेबोस फोरम और सीम यूजर फोरम में पोस्ट किया है।


मेरे पास एंबेडेड जेबस के साथ कुछ इसी तरह का मुद्दा था और मैं अंत में फाइल में खेलने को ठीक कर दूंगा: test-dataource-ds.xml

जोड़ने

<mbean code="org.jboss.naming.NamingAlias" name="jboss.jmx:alias=testDatasource">
    <attribute name="FromName">jdbc/Example DataSource</attribute>
    <attribute name="ToName">java:/testDatasource</attribute>
</mbean>

समस्या थी jboss उपसर्ग जावा जोड़ें: / सभी डेटा स्रोत के लिए घोषित तो अंत में मेरे पास टेस्ट डेटा स्रोत नामक डाटासर्स था, जो उस निर्देश के साथ जेडीबीसी / उदाहरण डेटास्रोत को ओवरराइड किया गया था

मुझे भरोसा है ये काम करेगा


java: comp / env एंटरप्राइज़ नामकरण प्रसंग (ईएनसी) के रूप में जाना जाता है और वैश्विक रूप से दृश्यमान नहीं है। अधिक जानकारी के लिए यहां देखें। आपको वैश्विक जेएनडीआई नाम का पता लगाने की आवश्यकता होगी जो आपके डाटासर्स को रेगएटर किया गया है।

ऐसा करने का सबसे आसान तरीका है JBoss 'वेब-आधारित जेएमएक्स कंसोल पर नेविगेट करना और' जेएनडीआईवीयू '(नाम की बिल्कुल निश्चित नहीं है - वर्तमान में घर पर) एमबीआईएन की तलाश करें। इस मीनियन में एक सूची पद्धति होनी चाहिए जो आप लागू कर सकते हैं, जो सभी जेडीडीआई-बाउंड ऑब्जेक्ट्स के लिए संदर्भ पथ प्रदर्शित करेगा।


प्रतिक्रिया टूलकिट के लिए धन्यवाद .... हाँ, मैं सीधे java: jdbc / mydb पर जाकर अपने डेटा स्रोत का उपयोग कर सकता हूं, लेकिन मैं एक मौजूदा कोड बेस का उपयोग कर रहा हूं जो ENC के माध्यम से जुड़ता है। यहाँ कुछ दिलचस्प जानकारी है जिसे मैंने पाया है ....

  1. उपरोक्त कोड जेबीस 4.2.2.जीए के साथ काम करता है और यहां जेएनडीआई सीटीएक्स मापदंडों का उपयोग किया जाता है:
    java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs = org.jboss.naming: org.jnp.interfaces: org.jboss.naming: org.jnp.interfaces

  2. उपरोक्त कोड टॉमकेट 5.5.x के साथ काम करता है और यहां जेएनडीआई सीटीएक्स मापदंडों का इस्तेमाल किया जा रहा है:
    java.naming.factory.initial = org.apache.naming.java.javaURLContextFactory java.naming.factory.url.pkgs = org.apache.naming

  3. ऊपर त्रुटि संदेश के साथ टॉमकेट 5.5.x में एम्बेडेड जेबोस (बीटा 3) के साथ उपरोक्त कोड विफल हो गया है।
    java.naming.factory.initial = org.apache.naming.java.javaURLContextFactory java.naming.factory.url.pkgs = org.apache.naming उपरोक्त त्रुटि टॉमेट 5.5.x में एम्बेडेड JBoss का उपयोग करते हुए उपरोक्त त्रुटि के साथ विफल हो जाती है

किसी को भी किसी भी विचार है मैं एम्बेडेड JBoss JNDI विन्यास को विन्यस्त करने के साथ क्या करने की जरूरत है?