- PR -

ORACLE10.2 JDBC接続エラー

1
投稿者投稿内容
きたむら
会議室デビュー日: 2007/07/13
投稿数: 2
投稿日時: 2007-07-13 15:18
こんにちは。きたむらです。

Oracle10.2.0.2.0の環境で、JAVAからDB接続しようとしているのですが、
「oracle.security.pki.OracleWallet not found」といったエラーが表示されてしまいます。
ドライバはojdbc14.jarの最新版をダウンロードして使用しています。
アドバイスいただきたく、よろしくお願いします。

・作業環境
・OS
 ・Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
・カーネル
 ・2.6.9-42.ELsmp

・データベースサーバー
 Oracle Database 10g Release 10.2.0.2.0 - 64bit Production

・JDK
 j2sdk1.5.0_12

・JDBC
ojdbc14.jar[10.2.0.1.0]

CLASSPATH=.:/usr/local/imaizumi/javaFileSample/oracle/ojdbc14.jar:
/usr/java/j2sdk1.5.0_12/jre/lib/*.jar:/usr/java/j2sdk1.5.0_12/lib/*.jar

★実行ソース
OracleInsertThin.java
---------------------------------------------------------------------------------------
import java.sql.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;

public class OracleInsertThin {

public static void main(String[] args) {

try {
System.out.println( "test A" );
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println( "test B" );
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
Connection conn = null;
System.out.println("connection null");
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XXX",
"XXX",
"XXX");
} catch (SQLException e) {
e.printStackTrace();
return;
}
}

}
---------------------------------------------------------------------------------------

>javac OracleInsertThin.java
>java OracleInsertThin

★結果
--------------------------------------------------------------------------------------
test A
Exception in thread "main" java.lang.NoClassDefFoundError: while resolving class: oracle.jdbc.driver.OracleDriver
at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib64/libgcj.so.5.0.0)
at java.lang.Class.initializeClass() (/usr/lib64/libgcj.so.5.0.0)
at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib64/libgcj.so.5.0.0)
at OracleInsertThin.main(java.lang.String[]) (Unknown Source)
Caused by: java.lang.ClassNotFoundException: oracle.security.pki.OracleWallet not found in [file:./, file:/usr/local/imaizumi/javaFileSample/oracle/ojdbc14.jar,
file:/usr/java/j2sdk1.5.0_12/jre/lib/*.jar,
file:/usr/java/j2sdk1.5.0_12/lib/*.jar,
file:/usr/share/java/libgcj-3.4.6.jar, file:./, core:/]
at java.net.URLClassLoader.findClass(java.lang.String) (/usr/lib64/libgcj.so.5.0.0)
at gnu.gcj.runtime.VMClassLoader.findClass(java.lang.String) (/usr/lib64/libgcj.so.5.0.0)
at java.lang.ClassLoader.loadClass(java.lang.String, boolean) (/usr/lib64/libgcj.so.5.0.0)
at _Jv_FindClass(_Jv_Utf8Const, java.lang.ClassLoader) (/usr/lib64/libgcj.so.5.0.0)
at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib64/libgcj.so.5.0.0)
at _Jv_BytecodeVerifier.verify_instructions_0() (/usr/lib64/libgcj.so.5.0.0)
at _Jv_VerifyMethod(_Jv_InterpMethod) (/usr/lib64/libgcj.so.5.0.0)
at _Jv_PrepareClass(java.lang.Class) (/usr/lib64/libgcj.so.5.0.0)
at _Jv_WaitForState(java.lang.Class, int) (/usr/lib64/libgcj.so.5.0.0)
at java.lang.VMClassLoader.linkClass0(java.lang.Class) (/usr/lib64/libgcj.so.5.0.0)
at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib64/libgcj.so.5.0.0)
...3 more

---------------------------------------------------------------------------------------



[ メッセージ編集済み 編集者: きたむら 編集日時 2007-07-13 15:20 ]

[ メッセージ編集済み 編集者: きたむら 編集日時 2007-07-13 15:22 ]
マーサ
ベテラン
会議室デビュー日: 2004/11/26
投稿数: 87
投稿日時: 2007-07-13 15:29
引用:

きたむらさんの書き込み (2007-07-13 15:18) より:

Oracle10.2.0.2.0の環境で、JAVAからDB接続しようとしているのですが、
「oracle.security.pki.OracleWallet not found」といったエラーが表示されてしまいます。
ドライバはojdbc14.jarの最新版をダウンロードして使用しています。

〜〜〜〜〜

Class.forName("oracle.jdbc.driver.OracleDriver");

〜〜〜〜〜

Exception in thread "main" java.lang.NoClassDefFoundError: while resolving class: oracle.jdbc.driver.OracleDriver


ん?
Oracle10g?
ojdbc14.jar??

何で「oracle.jdbc.driver.OracleDriver」使おうとしてるの?
マニュアル見てますか?
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2007-07-13 15:58
java のパスは正しいですか?

> at java.lang.VMClassLoader.resolveClass(java.lang.Class)
> (/usr/lib64/libgcj.so.5.0.0)
^^^^^^^^^^^^^^^
何故か libgcj が参照されているようですが・・・
RHEL では /usr/bin/java は gij を差しているので、
正しく PATH を設定しないと動作しないです。
きたむら
会議室デビュー日: 2007/07/13
投稿数: 2
投稿日時: 2007-07-13 22:58
>マーサさま
oracle.jdbc.driver.OracleDriver⇒oracle.jdbc.OracleDriverということでしょうか?
まだ廃止されていないようですが、いずれ無くなるとのことで修正しました。

回答ありがとうございました。

>あんとれさま

ご指摘ありがとうございます。
OracleのExceptionでばかり調査していました。
Pathは一番最後に配置していたのですが、JAVAのPathが通っていませんでした。
Pathの一番最初に、jdkのパスを指定したらエラーを回避できました。

回答ありがとうございます。

助かりました!
1

スキルアップ/キャリアアップ(JOB@IT)