سؤال

ولقد كان لديها صعوبة في جعل العمل مصدر بيانات JNDI. التعليمات التالية في http://tomcat.apache.org/tomcat-5.5- وثيقة / JNDI الموارد-howto.html أنا الاتصال أوراكل مع Tomcat5.5 يمكنني ربط الغرامة إذا كنت تستخدم اتصال JDBC التوالي في التعليمات البرمجية.

وهنا هو ما قلته: في بلدي META-INF / context.xml:

<Resource name="jdbc/mydb" auth="Container"
          type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
          url="jdbc:oracle:thin:theserver:1521/mydb"
          username="user" password="password" maxActive="20" maxIdle="10"
/>

وهنا هو ما هو في web.xml:

<resource-ref>
  <description>please work</description>
  <res-ref-name>jdbc/mydb</res-ref-name>
    <res-type>
    javax.sql.DataSource
    </res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

وهنا هو رمز:

   Connection conn = null;
    try{
    InitialContext ic = new InitialContext();
    DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/mydb");
    conn = ds.getConnection();
    } catch ....... etc.

ولقد حاول العديد من تكوينات مختلفة، وبدأت، مشروع بسيط جديد لضمان عدم وجود جرة إضافية ملفات متعارضة أو أي شيء من هذا القبيل، ولكن.

ويمكن لأي شخص أن يرى أي شيء لا تبدو أليس كذلك؟

والخطأ على الخادم يشير إلى NullPointerException عندما حاولت استخدام الكائن كون. عفوا، فهو يقدم أولا: org.apache.tomcat.dbcp.dbcp.SQLNestedException: لا يمكن إنشاء PoolableConnectionFactory (باستثناء أيو: محول شبكة تعذر تأسيس اتصال)

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

المحلول

وهذا رابط قاعدة بيانات يبدو كسر لي.

والمحاولة:

<اقتباس فقرة>
jdbc:oracle:thin:@theserver:1521/mydb

نصائح أخرى

و"لا يمكن لمحول شبكة تأسيس الاتصال"

وهذا هو دليل الخاص بك. لا يمكن أن تصل إلى قاعدة البيانات. تحقق الخادم الخاص بك والميناء الصحيح، والتحقق من أنها قابلة للوصول من جهازك.

وأنا ردا على تصريحات في سيباستيان الإجابة.

وعندما أرى org.apache.commons.dbcp، فهذا يعني القط يستخدم مكتبة المدمج في أباتشي العموم اتصال قاعدة بيانات تجمع بدلا من المكتبة في برنامج Oracle JDBC.

وسائق أوراكل JDBC لا يجري في الدليل شيوعا هو عادة أول مشكلة وأنا أحاول أن حلها. ويبدو هذا ليس مشكلتك.

وثانيا، عند بدء تشغيل التطبيق، إذا كان هناك مشكلة في إنشاء مصدر بيانات JNDI القط قد تستخدم المكتبة العموم. وهذا قد يكون قضيتك بسبب URL قاعدة بيانات خاطئ. تصحيح context.xml أو نسخ / ملف إعادة تسمية في / كاتالينا الدليل / المضيف المحلي أسيوط قد لا يحل المشكلة دون إيقاف وإعادة تشغيل القط. لذا، أنصح إيقاف وإعادة تشغيل القط ورؤية ما إذا كان هذا يعمل على حل المشكلة.

وملاحظة أخيرة، الرابط الذي تقدم هو لإنشاء مكتبة المشتركة ل. استغرق الأمر مني بعض الوقت لهذا الرقم. فيما يلي مثال واحد من بلدي JNDI تعريفات مصدر بيانات أوراكل.

  <Resource auth="Container" name="jdbc/mydb" 
    type="oracle.jdbc.xa.client.OracleXADataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    factory="oracle.jdbc.pool.OracleDataSourceFactory"
    url="jdbc:oracle:thin:@theserver:1521:mydb" 
    connectionCachingEnabled="true"
    connectionCacheProperties="{InactivityTimeout=1800,PropertyCheckInterval=300,MaxStatementsLimit=125,ValidateConnection=true}"
    implicitCachingEnabled="true"/>

وأنا لست متأكدا مما إذا كان المسائل النوع في قضيتك وأعتقد أن المستخدم وكلمة المرور لا تزال سمات العلامة الموارد. ما أريد أن أشير إلى أن connectionCacheProperties السمة. هنا هو المكان الذي تحدده تحدده الاتصالات القصوى والدنيا. انتقل إلى خصائص الاتصال ذاكرة التخزين المؤقت ل مزيد من المعلومات عن هذه السمة.

وآمل أن يساعد هذا.

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