Java1.6でOracle11gに接続エラー

このQ&Aのポイント
  • Java1.6でOracle11gに接続時にエラーが発生します。エラーメッセージはjava.lang.ArrayIndexOutOfBoundsException: 7です。
  • 現在のソースでは、Context initContext = new InitialContext(); という行から始まり、DataSource ds = (DataSource)initContext.lookup("java:comp/env/jdbc/SampleDB"); という行までが含まれています。
  • 他のバージョン(9iや10g)では接続問題は発生せず、ドライバを変えることで正常に接続できます。
回答を見る
  • ベストアンサー

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
  • 回答数3
  • ありがとう数6

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

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

oracle.jdbc.driver.OracleDriver は古いものなので 使うのは oracle.jdbc.OracleDriver こっちで。 それで解決したりするかな。 ダメならもうOracleに問い合わせするしか思いつかないわ。

MIYUUNA
質問者

お礼

いろいろとありがとうございました。 結果は、駄目でした・・・ 別の方法をまた試してみます・・・

その他の回答 (2)

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

そうね。 JDK1.6系ならojdbc6.jarね。 それは間違いないわ。 OracleのJDBCドライバはファイル名からバージョンがわからないのが欠点だけど。 今はDatasourceを使っているけど DriverManagerを使って接続を試してみるといいわ。 それでも例外が出る場合、アプリケーションの実装や設定以外の 問題かもしれないわ。

MIYUUNA
質問者

お礼

回答ありがとうございます。 じつは、指摘頂いた内容を試した所でした <ソース> Class.forName("oracle.jdbc.driver.OracleDriver"); String dsn = "jdbc:oracle:thin:@192.168.1.15:1521:SampleDB"; Connection cn = DriverManager.getConnection(dsn, "aaaa", "aaaa"); でも結果は同じでした・・・ 別の環境問題なのでしょうか?

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

ドライバが間違っているとか ドライバの障害とかを 疑うわね。 最新版をダウンロードしてみてはどうかしら?

MIYUUNA
質問者

お礼

回答ありがとうございます。 ドライバを疑って、最新版をダウンロードしてみたのですが・・・ ちなみに利用しているドライバは「ojdbc6.jar」です

関連するQ&A

  • 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
  • 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
  • Oracle8i に接続しようと思うんですが、エラーが出ます。 その2

    2度目です。すみません。 先ほどの問題は解決できたのですが、今度は別のエラーがでてしまいます。 java.sql.SQLException: I/O例外です。: The Network Adapter could not establish th e connection at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222) at oracle.jdbc.dbaccess.DBError.throwSqlException ソースは以下のとおりで、Connection conn のところで、エラーが出ます。 public class DbTest{ // [ jdbc:oracle:thin:@ + "IP or コンピュータ名(NETBIOS名)" + ":" + ポート + ":" + "DB名" ] private static String DATABASE_URL = "jdbc:oracle:thin:@ksr01-d:1521:ksroracle"; private static String DATABASE_USER = "ksr"; private static String DATABASE_PASS = "ksr"; public static void main(String[] arg ){ System.out.println("STRAT"); try{ // JDBC ドライバの登録 DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver() ); String drName = "oracle.jdbc.driver.OracleDriver"; Connection conn = DriverManager.getConnection( DATABASE_URL, DATABASE_USER, DATABASE_PASS ); Oracle SQL*Plus を起動してから、実行しています. 事務所に、java の出来る人がいなく、oracle に詳しい人もいなく、上司が、絶対作れといってきて大変困っています。 誰かわかる人がいたら、教えてください。すみませんが,よろしくお願いします.

    • ベストアンサー
    • Java
  • eclipse java oracle 接続について

    同じような質問があり、試してみたのですができませんでした 初心者なので、勉強不足だとは思っていますがどうかヨロシクお願いします Exception in thread "main" 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 Oracletest.main(Oracletest.java:11) というエラーがでています オラクルのドライバが探せていないのはわかるのですがPATHも通しているので手詰まりになってしまいました ちなみに オラクル 10g java 1.5.0_09 を使っています 詳しい設定方法を教えて下さると助かります よろしくお願いします

  • oracleへの接続

    Java初心者です。oracleについて勉強しているのですが なかなかうまくいきません。 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connection=DriverManager.getConnection("jdbc:oracle:thin:@dbserver:1521:oracle","test","test"); jdbc:oracle:thin:@(ホスト名):(ポート番号): (接続するデータベースのSID)   ↑   ↑ この接続するデータベースのSIDとはどういう意味なの でしょうか? もしかしたら追加質問をするかもしれないので よろしくお願いします。

  • 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
  • MySQLへの接続なんですが・・。

    下記にあるJAVAのソースファイルがあるのですが、コンパイルしてクラスファイルをつくり、実行してもうまくいきません。 windows2000Professional, j2sdk1.4.0_01, MySQL3.23.47 // uc/BaseJdbc.java import java.sql.* ; public class BaseJdbc { public static void main(String[] args) { final String LINE = "---------------------------------------\n" ; try { Class.forName("org.gjt.mm.mysql.Driver") ; // JDBCドライバ登録 System.out.println("\n" + LINE + "MySQLのJDBCドライバを登録。") ; Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/river_data", "Administrator","lled") ; System.out.println("データベース「jdbc:mysql://localhost/" + "river_data」へ接続。") ; } } } 下記、コマンドプロンプトにて実行画面。 D:\azMySq\uc\BaseJdbc>java BaseJdbc --------------------------------------- MySQLのJDBCドライバを登録。 java.sql.SQLException: Invalid authorization specification: Access denied for us er: 'Administrator@localhost' (Using password: YES) at org.gjt.mm.mysql.MysqlIO.init(MysqlIO.java:330) at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:261) at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89) at org.gjt.mm.mysql.Driver.connect(Driver.java:167) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at BaseJdbc.main(BaseJdbc.java:20)

  • JDBCでMySQLに接続

    Linuxにmysql-4.1.7をインストールして、JDBCドライバを入れ、javaからデータベースを操作しようとしています。 しかし、「mysqld_safe --user=mysql &」を実行してから、javaプログラムをコンパイルして実行すると、 java.sql.SQLException: Cannot connect to MySQL server on localhost:3306. Is there a MySQL server running on the machine/port you are trying to connect to? (java.net.ConnectException) at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:331) at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89) at org.gjt.mm.mysql.Driver.connect(Driver.java:167) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:15) というエラーが出てしまいます。原因がわかる方がおられましたら、ご指導のほどよろしくお願いいたします。

  • SVF

    SVFを使用して帳票を出力したいのですが、下記のエラーが表示されて正常に起動しません。 「プロシージャエントリーポイント OCIPServer Post がダイナミックライブラリー OCI.DLLから見つかりませんでした。」⇒「OK」をクリック後、 「request erroe. [HTTP status code:404])」 また、SVFのログを抜粋して記載します。 [10] jdbc driver class : oracle.jdbc.driver.OracleDriver [10] jdbc driver encode : 0 [10] java.lang.UnsatisfiedLinkError: C:\oracle\product\10.2.0\db_1\BIN\ocijdbc10.dll: ?w?????v???V?[?W????????????????B [10] at java.lang.ClassLoader$NativeLibrary.load(Native Method) [10] at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586) [10] at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1511) [10] at java.lang.Runtime.loadLibrary0(Runtime.java:788) [10] at java.lang.System.loadLibrary(System.java:834) [10] at oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3134) [10] at java.security.AccessController.doPrivileged(Native Method) [10] at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3130) [10] at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:220) [10] at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413) [10] at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:131) [10] at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:77) [10] at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752) [10] at jp.co.fit.query.SqlDriver.connect(Unknown Source) [10] at jp.co.fit.query.SqlDriver.<init>(Unknown Source) [10] at jp.co.fit.vfreport.PrintDriverWrapper.VrSetQuery(Unknown Source) [10] at jp.co.fit.vfreport.Vrw32.VrSetQuery(Unknown Source) [10] at jp.co.fit.vfreport.SvfrExecuter.dispatch(Unknown Source) [10] at jp.co.fit.vfreport.SvfrServer$Client.run(Unknown Source) [10] at java.lang.Thread.run(Thread.java:534) なにぶん初心者ですから...ちなみに環境は以下の通りです。 ・WindowsXP ・JDK1.4.2_03 ・Oracle - OraDb10g_home1:Oracle ODBC Driver. Release 10.1.0.2.0 ・Oracle - OraClient10g_home1:Oracle ODBC Driver. Release 9.2.0.4.0 わかりにくいかもしれませんが、宜しくお願い致します。

  • サーブレットからJavaBeansを利用したDB接続について

    初歩的な質問ですみません。 下記環境で、Javaを勉強しています。 教材 :やさしいJava 活用編 Lesson8 Sample5 実行環境:j2sdk1.4.1_07 (教材では、j2sdk-1_4_0) Tomcat 5.0(教材では、Tomcat-3.2.3) IE6.0 サーブレットでリクエストを受付け、JavaBean経由でDBに接続(Access2000を利用)しDBの中身をJSPで表示するいう流れです。サーブレットのURLを指定して実行してもjspページには何も表示されません。 ログファイルには下記エラーが記述されています。 勘違いか、何らかの初歩的なミスだと思いますが、解決方法が見つかりません。解決方法をご存知の方教えて下さい。よろしくお願いします。 尚、JDBC-ODBCドライバを使用していますが、サーブレットからではなくJavaアプリからではAccess2000のDB参照更新が出来ています。サーブレットから(JavaBean経由)だとうまくいかないという事象です。 java.sql.SQLException: [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。 at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at CarDB.CarDBBean.<init>(CarDBBean.java:22) at Sample5.doGet(Sample5.java:16) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at ~略~