문제
나는 다음과 같은 개미를 가지고 있습니다 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>
이것이 제가 항상 클래스 경로를 참조하는 방법이며 아무런 문제도 없었습니다.