문제

나는 다음과 같은 개미를 가지고 있습니다 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>

lib 디렉터리에 Oracle JDBC 드라이버가 있습니다.Echo는 이를 올바르게 인쇄합니다.

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

어떻게 든 sql ant 작업이 여전히 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" 작업에서 동일한 오류 메시지가 나타납니다.

저는 Ant 1.7.1(Netbeans 6.5에 내장)을 사용하고 있습니다.

도움이 되었습니까?

해결책

구문이 올바른 것 같습니다.통과해 보세요 -v ant 명령으로 전환하면 sql 사용 중인 클래스 경로를 인쇄하는 작업입니다.다음과 같은 내용이 표시됩니다.

[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 클래스로더 디버깅을 포함한 많은 정보를 인쇄하는 스위치입니다.

마지막으로 ojdbc jar이 손상되지 않았으며 실제로 OracleDriver 클래스를 포함하고 있는지 확인하셨습니까?

다른 팁

클래스 이름을 oracle.jdbc.OracleDriver로 변경해 보세요.oracle.jdbc.driver 패키지는 oracle.jdbc를 위해 더 이상 사용되지 않습니다.

Readme의 "이전 oracle.jdbc.driver 패키지는 사라질 것입니다" 섹션을 참조하십시오. 여기.

classpathref 속성 대신 classpath 요소를 사용해 볼 수 있습니다.

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

이것이 제가 항상 클래스 경로를 참조하는 방법이며 아무런 문제도 없었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top