تساعد على تكوين JNDI مع جزءا لا يتجزأ من جبوس في هر 5.5.x

StackOverflow https://stackoverflow.com/questions/122714

سؤال

عندما أحاول التالية بحث في قانون بلدي:

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

جزءا لا يتجزأ من جبوس مكونات مثل الاتصال تجمع EJB, JPA, و جعل المعاملات الاستخدام الواسع النطاق من JNDI نشر الخدمات.جزءا لا يتجزأ من جبوس يتجاوز هر JNDI تنفيذ طبقات نفسها على رأس هر JNDI مثيل.هناك عدد قليل > أسباب ذلك:

  1. لتجنب الاضطرار إلى إعلان كل واحدة من هذه الخدمات داخل server.xml
  2. للسماح seemeless التكامل جافا:شركات مساحة بين تطبيقات الويب ، EJBs.
  3. هر JNDI تنفيذ لديها عدد قليل من الأخطاء الهامة في ذلك أن تعيق بعض جبوس مكونات القدرة على العمل
  4. نحن نريد أن نقدم الخيار لك من الاتصال عن بعد EJBs والخدمات الأخرى التي يمكن أن > يكون عن بعد بدا

أي شخص لديه أي أفكار عن كيف يمكن تكوين جبوس خدمة تسمية والتي وفقا الاقتباس أعلاه هو الطاغي هر JNDI تنفيذ لدرجة أنني يمكن أن تفعل البحث على جافا:شركات/env?

لمعلوماتك - بيئتي هر 5.5.9, التماس 2.0.2 sp, جزءا لا يتجزأ من جبوس (بيتا 3),

ملاحظة:لدي -ds.xml ملف قاعدة البيانات اتصال الإعداد بشكل صحيح ويمكن الوصول إليها على المسار الفئة في التعليمات.

لاحظ أيضا:لقد أرسلت هذا السؤال في جزءا لا يتجزأ من جبوس المنتدى التماس المستخدم المنتدى.

هل كانت مفيدة؟

المحلول

شكرا على الرد أدوات....نعم يمكنني الوصول إلى البيانات عن طريق الذهاب مباشرة إلى جافا:jdbc/mydb ، ولكن أنا باستخدام التعليمات البرمجية الموجودة القاعدة الذي يربط طريق ENC.وهنا بعض معلومات مثيرة للاهتمام التي كنت قد وجدت بها ....

  1. رمز أعلاه يعمل مع جبوس 4.2.2.GA وهنا JNDI ctx المعلمات المستخدمة:
    java.تسمية.مصنع.الأولي=org.jnp.الواجهات.NamingContextFactory java.تسمية.مصنع.url.pkgs=org.جبوس.التسمية:org.jnp.الواجهات:org.جبوس.التسمية:org.jnp.واجهات

  2. رمز أعلاه يعمل مع هر 5.5.x وهنا JNDI ctx المعلمات المستخدمة:
    java.تسمية.مصنع.الأولي=org.أباتشي.تسمية.java.javaURLContextFactory java.تسمية.مصنع.url.pkgs=org.أباتشي.تسمية

  3. رمز أعلاه فشل مع جزءا لا يتجزأ من جبوس (بيتا 3) في هر 5.5.x مع رسالة الخطأ المذكورة أعلاه.
    java.تسمية.مصنع.الأولي=org.أباتشي.تسمية.java.javaURLContextFactory java.تسمية.مصنع.url.pkgs=org.أباتشي.namingThe أعلاه فشل مع رمز الخطأ أعلاه باستخدام جبوس جزءا لا يتجزأ في هر 5.5.x

أي شخص لديه أي أفكار أنا ما كنت بحاجة إلى القيام به مع تكوين جزءا لا يتجزأ من جبوس JNDI التكوين ؟

نصائح أخرى

java:شركات/env يعرف باسم المؤسسة سياق تسمية (ENC) و ليست مرئية على الصعيد العالمي.انظر هنا للحصول على مزيد من المعلومات.سوف تحتاج إلى تحديد موقع العالمي JNDI اسم مصدر البيانات الخاص بك هو regsitered في.

أسهل طريقة للقيام بذلك هو أن انتقل إلى جبوس' على شبكة الإنترنت JMX وحدة التحكم والبحث عن 'JNDIView' (لا اعرف بالضبط اسم - حاليا في المنزل) mbean.هذا mbean يجب أن يكون لديك قائمة الطريقة التي يمكنك الاحتجاج التي سيتم عرض إطار مسار كل من JNDI-لا بد الكائنات.

لدي بعض مشكلة مشابهة مع جبوس جزءا لا يتجزأ و أخيرا إصلاح اللعب في الملف:test-Datasource-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>

المشكلة جبوس إضافة البادئة جافا:/ لجميع البيانات أعلن مصدر.وأخيرا كان مصدر بيانات اسمه testDatasource, overrided مع أن التوجيه إلى jdbc/المثال DataSource

نأمل أن يعمل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top