tomcatからのoracle接続エラーについて

このQ&Aのポイント
  • javaサーブレットからoracleに接続する際に発生したエラーの解決方法について教えてください
  • jdbcドライバーの設置やクラスパスの設定を確認しても解決しない場合、他のパターンで試してみてください
  • postgresqlに接続するjavaサーブレットでは問題なく動作しているため、oracleに接続する際に特有のエラーが起きている可能性があります
回答を見る
  • ベストアンサー

tomcatからのoracle接続エラーについて

お世話になります。 javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。 エラー:java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 解決するための情報を頂けますでしょうか。 私がテストしている環境は、以下となります。 【Webサーバ】 centOS5.5. jdk1.6 tomcat5.5 【DBサーバ】 centOS5.5. oracle11g r2 jdbcドライバーは、ojdbc6.jarを使用しております。 ドライバーは、Webサーバの /WEB-INF/libと$TOMCAT_HOME/common/lib配下に設置しております。 環境変数クラスパスに$TOMCAT_HOME/common/libが、設定されていることも確認しております。 JDBCドライバについては、以下の3パターンで試してみましたがすべて同じエラーとなりました。  ・オラクルインストール時のもの(DBサーバ)  ・オラクルHPの11g r2(11.2.0.1)のもの  ・オラクルHPの11g r2(11.2.0.2)のもの どのJDBCドライバを配置した時も、cataline.outには、 oracle.jdbc.OracleDriverクラスが、追加できたというログが出力されておりました。 尚、同じWebサーバでpostgresqlに接続するjavaサーブレットは、/WEB-INF/lib 配下にJDBCドライバーを配置しているだけで問題なく動作しております。 お手数お掛け致しますが、ご教授宜しくお願い致します。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

その ojdbc6.jar を解凍してみたら oracle.jdbc.OracleDriver クラスが入っていなかった というオチはないかしら。

kenken1917
質問者

お礼

お礼が遅くなり申し訳ございません。 ご回答誠にありがとうございます。 ご回答頂いた通りoracle.jdbc.OracleDriverクラスが入っていませんでした。 HPとかで調べるとojdbc6.jarのoracle.jdbc.OracleDriverクラスを使用すると書いてあったので解凍して調べてませんでした。 もう少し調査したいと思います。

関連するQ&A

  • ORACLEに接続できない

    お世話になります。 JAVAでoracleに接続しようとしているのですが cmdからの接続はできたのですが tomcatでの接続が行えません。 oracle 9i Tomcat 5.5 エラー内容は java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver です。 接続するコードは以下のようです。 String drv = "oracle.jdbc.OracleDriver"; String dsn = "jdbc:oracle:thin:@localhost:1521:SID"; その他補足も致しますので、 ご教授宜しくお願い致します。 また、上記コードを使用した別のコードで行ったところ CMDでの接続はできましたので classPathは通っているとおもうのですが…

    • ベストアンサー
    • Java
  • Java1.6でOracle11gに接続エラー

    以下の環境で接続試みているのですが、エラーが発生します。 ご教授願います。 <環境> JDK1.6.0_17 TOMCAT6 ORACLE11g <エラー内容> java.lang.ArrayIndexOutOfBoundsException: 7 at oracle.security.o3logon.C0.r(C0) at oracle.security.o3logon.C0.l(C0) at oracle.security.o3logon.C1.c(C1) at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientHelper) at oracle.jdbc.ttc7.O3log.<init>(O3log.java) at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) ・・・以下続く 簡単ですが、現在のソースです。 Context initContext = new InitialContext(); //JNDIルックアップでデータソース取得 DataSource ds = (DataSource)initContext.lookup("java:comp/env/jdbc/SampleDB"); Connection conn = ds.getConnection(); ドライバを変えて、他のバージョン(9iや10g)には接続問題なくできています。

    • ベストアンサー
    • Java
  • oracle9iにJDBC接続が出来ない

    oracle9iにJDBCで接続したいのですがI/O例外が出てうまくいきません。 多分、DriverManager.getConnection の引数のURLが間違っているのだと思うのですが。 jdbc:oracle:thin:@<ホスト名>:<リスナのポート番号>:<Oracle SID> ホスト名・ポート番号・Oracle SID はどこを見ればわかるのでしょうか? ちなみに出ているエラーは以下のとうりです。 Exception in thread "main" java.sql.SQLException: I/O例外です。: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at JavaDataAccess01.main(JavaDataAccess01.java:13) 何か参考になるHPなどあれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaアプリケーションで動くJDBCがサーブレットで動かない

    Javaアプリケーションでは動いていたJDBCのソースをサーブレットの中に組み込むと例外が発生して動きません。 JDBCドライバ(Thinドライバ)をDriverManagerに登録するところ  Class.forName("oracle.jdbc.driver.OracleDriver"); でClassNotFoundExceptionが発生します。 何か設定が足りないのでしょうか? どこを確認すべきか教えてください。お願いします。 ちなみに環境は以下の通りです。 ・Windows2000 ・Apache1.3.26 ・Tomcat3.2.4 ・JDK1.3.1_02

    • ベストアンサー
    • Java
  • Oracle8i に接続しようと思うんですが、エラーが出ます。

    Oracle 8i に接続したいと思い、 C:\Oracle\Ora81\jdbc\lib に classes12.zip を置いています。 クラスパスの設定は、C:\Oracle\Ora81\jdbc\lib\classes12.zip としています。classes12 は oracle 9i 用を使っています。 ちなみに、OSはWin2000professional です。 // JDBC ドライバの登録 DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver() ); とすると、 Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/Or acleDriver at DbTest.main(DbTest.java:16) のエラーが出て、 Class.forName("oracle.jdbc.driver.OracleDriver");  とすると、 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at DbTest.main(DbTest.java:19) というエラーが出ます。 誰かわかる人がいたら、教えてください.よろしくお願いします。

    • ベストアンサー
    • Java
  • JavaからOracleを呼ぶ。(JDBCドライバの利用方法)

    色々調べましたが分からないので質問させてください。よろしくお願いします。 JavaからOracleを使いたくて、JDBCドライバのことを調べています。 Oracle(のClient)がインストールされた私のパソコン ↓ D:\oracle\ora92\jdbc\lib\classes12.zip\oracle\jdbc\driver\OracleDriver.class まず、コマンドプロンプトにてクラスパスを通しました。 C:\java > set CLASSPATH = D:\oracle\ora92\jdbc\lib\classes12.zip (↑CのjavaフォルダにSqlTest.javaを作成しています。) コンパイルは成功しましたが、実行はできません(;_;) java.lang.ClassNoClassDefFoundError: SqlTest というエラーです。 詳しい方、どうかご教授よろしくお願いします。

    • ベストアンサー
    • Java
  • javaでのORACLEへの接続

    javaでのORACLEへの接続方法を教えてください javaの初心者なのですが、JAVAでのORACLEへの接続方法がよくわかりません。 解説書のORACLEへの接続へのクラスファイルを実行してみましたがエラーとなって しまいます。(コンパイルは通ります)ちなみにクラスファイルの中身は... import java.sql.*; /* 省略 */ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@hostname:1521:ORA817"; /* 省略 */ Connection conn = DriverManager.getConnection(url, user, password); /* 以下省略 */ この中でJDBCドライバのURLの@hostnameの部分にサーバーのIP(202.15....) ORA817の部分にデータベース名を入れ、ユーザ-、パスワードも実在するものにしてあります。Class.forNameの部分は変える必要があるのでしょうか?ファイルの場所は"C:\A116"です。ちなみにエラーメッセージは... C:\A116>java GetConnectionDemo java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at GetConnectionDemo.main(GetConnectionDemo.java:6) ORACLEサーバ WINDOWS2000 ORACLE 8.1.6i です。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • javaサーブレットとmysqlと接続で困ってます

    参考書見ながらjava サーブレットの勉強してるんですがmysqlと繋ぐのに苦戦しています。 プロジェクトのwebcontentのweb-infのlibにJDBCを入れたのですが、こんなエラーがでます。 java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sample_db?useUnicode=true&characterEncoding=utf8 これはパスの設定がされてないからでしょうか?

    • ベストアンサー
    • Java
  • javaサーブレットからのoracle接続エラー

    お世話になります。 javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。 エラー:java.sql.SQLRecoverableException: クローズされた接続です。 解決するための情報を頂けますでしょうか。 私がテストしている環境は、以下となります。 【Webサーバ】 centOS5.5. jdk1.6 tomcat5.5 【DBサーバ】 centOS5.5. oracle10g r2 jdbcドライバーは、ojdbc6.jarを使用しております。 サーブレット起動時にDB接続し処理完了時にDBクローズしていますが、DBクローズ処理にて 上記エラーが、発生してしまいます。 DB接続及びDBクローズは、以下のようにプログラミングしております。 /** * 概要 : DBアクセス * 処理 : DBアクセス */ public void dbAccess() throws Exception { conn = null; try { DriverManager.setLogWriter(new PrintWriter(System.out)); Class.forName(driver); conn = DriverManager.getConnection( jdbcPrefix + hotname + dbname, username,password); // 自動コミット・モードを設定(手動コミット) conn.setAutoCommit(false); }catch (SQLException e) { throw e; }catch (Exception e) { throw e; } } /** * 概要 : DBクローズ * 処理 : DBを閉じます。 */ public void dbClose() throws Exception { try { if (conn != null) conn.close(); }catch (Exception e) { throw e; } } お手数お掛け致しますが、ご教授宜しくお願い致します。

    • ベストアンサー
    • Java
  • EclipseでのJDBCドライバについて

    Eclipse3.1でデータベース(mysql)にアクセスするプログラムを作ったのですが下記のエラーが出ます。 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver これはJDBCドライバのセットアップがうまく出来ていないからなのでしょうか? またEclipseでは、~.jarというファイルをプロジェクトのWEB-INFのlibフォルダに入れれば使える印象があるのですが、参考書(EclipseのではなくJAVAなどの)などにあるようにTomcatのインストールフォルダ以下common/libに入れて環境変数を変更しないといけないのでしょうか? ご存知の方教えてください、よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう