سؤال

ولدي build.xml النمل التالية:

<path id="antclasspath">
    <fileset dir="lib">
        <include name="*.jar"/>
    </fileset>
</path>

<property name="pathvar" refid="antclasspath" />
<echo message="Classpath is ${pathvar}"/>

<sql
    driver="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@myserver.hu:1521:dbid"
    userid="myuserid"
    password="mypassword"
    print="yes"
    classpathref="antclasspath">
    select * from table
</sql>

وهناك برنامج Oracle JDBC في الدليل ليب. صدى يطبع بها بشكل صحيح:

Classpath is E:\MyDir\lib\ojdbc14-10_2_0_3.jar

ومهمة النمل لغة الاستعلامات البنيويه بطريقة أو بأخرى لا تزال غير قادرة على تحميل برنامج Oracle:

E:\MyDir\build.xml:100: Class Not Found: JDBC driver oracle.jdbc.driver.OracleDriver could not be loaded

ما هي المشكلة مع هذا build.xml؟ ومن الغريب جدا أنه كان يعمل عدة مرات أمس، ولكن أبدا مرة أخرى.

وعن طريق classpath="E:\MyDir\lib\ojdbc14-10_2_0_3.jar" في مهمة يعطي رسالة الخطأ نفسه.

وأنا باستخدام 1.7.1 النمل (بني في نتبيانس 6.5)

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

المحلول

وبناء الجملة يبدو الصحيح بالنسبة لي. محاولة تمرير التبديل -v لقيادة النمل الخاص بك، التي من شأنها توجيه مهمة sql لطباعة CLASSPATH انها تستخدم. يجب أن نرى شيئا مثل:

[sql] connecting to jdbc:oracle:thin:@myserver.hu:1521:dbid
[sql] Loading oracle.jdbc.driver.OracleDriver using AntClassLoader with classpath E:\MyDir\lib\ojdbc14-10_2_0_3.jar
[sql] Executing commands
[sql] SQL:  select * from dual
[sql] Processing new result set.
[sql] DUMMY
[sql] X

[sql] 0 rows affected
[sql] 0 rows affected
[sql] Committing transaction
[sql] 1 of 1 SQL statements executed successfully

وإذا كان هذا لا يساعد، يمكنك محاولة تمرير التبديل -debug، والتي سوف تطبع كما هائلا من المعلومات بما في ذلك التصحيح classloader.

وأخيرا، هل لديك التحقق من أن جرة ojdbc ليست فاسدة ولا، في الواقع، تحتوي على الطبقة OracleDriver؟

نصائح أخرى

وحاول تغيير اسم الفئة إلى oracle.jdbc.OracleDriver. يتم إهمال حزمة oracle.jdbc.driver لصالح oracle.jdbc.

وراجع قسم "القديمة oracle.jdbc.driver حزمة سوف تزول" في التمهيدي <لأ href = "http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/readme_10201 هتمل "يختلط =" نوفولو noreferrer "> هنا .

وبدلا من classpathref السمة قد تتمكن من محاولة استخدام عنصر CLASSPATH.

<sql ..params..>
  <classpath refid="antclasspath"/>
</sql>

وهذه هي الطريقة التي كنت دائما الرجوع classpaths بلدي وأنا لم يكن لديه أية مشاكل.

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