質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

3681閲覧

Javaでデータベース接続ができません。

gunma_user

総合スコア12

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/02/10 00:50

編集2020/02/10 01:43

Java初心者です。
A5M2というサービスをでデータベースを取得してから以下のようにして接続しようとしましたが、ブラウザ画面に「ドライバのロードに失敗しました」と表示され、接続できません。
A5M2でOracleのデータベースを取得し、Oracle公式サイトからJDBCドライバをダウンロードして、解凍後のjarファイルを取得し「\WebContent\WEB-INF」直下に置きました。

何が原因で接続に失敗しているのでしょうか。

import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/test") public class ServletTest extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String msg; try { // Class.forName("oracle.jdbc.driver.OracleDriver").getDeclaredConstructor().newInstance(); Class.forName("oracle.jdbc.OracleDriver"); msg = "ドライバのロードに成功しました"; }catch (ClassNotFoundException e){ msg = "ドライバのロードに失敗しました"; e.printStackTrace(); }catch (Exception e){ msg = "ドライバのロードに失敗しました2"; } request.setAttribute("msg", msg); Connection conn = null; String url = "jdbc:oracle://192.168.18.xxx:ORCL"; String user = "vlmj"; String password = "pswd812"; try{ conn = DriverManager.getConnection(url, user, password); // データベースに対する処理 }catch (SQLException e){ } String view = "/test.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(view); dispatcher.forward(request, response); } }

Eclipseを使って開発をしています。
OSはWindows10(おそらく64bit)、A5M2のバージョンは2.14.5です。
クラスバスはEclipseの機能を使い、プロジェクトのプロパティから先程追加しました。
上記ソースで、"ドライバのロードに失敗しました"を数字で分けたことにより、catch (ClassNotFoundException e)の部分でエラーが返ってきていることはわかりました。

printStackTrace()メソッドのエラー

情報: Serverのバージョン名:Apache Tomcat/9.0.30 [月 2月 10 10:39:36 JST 2020] 情報: Server ビルド: Dec 7 2019 16:42:04 UTC [月 2月 10 10:39:36 JST 2020] 情報: サーバーのバージョン番号:9.0.30.0 [月 2月 10 10:39:36 JST 2020] 情報: OS 名: Windows 10 [月 2月 10 10:39:36 JST 2020] 情報: OS バージョン: 10.0 [月 2月 10 10:39:36 JST 2020] 情報: アーキテクチャ: amd64 [月 2月 10 10:39:36 JST 2020] 情報: Java Home: C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\java\11 [月 2月 10 10:39:36 JST 2020] 情報: JVM バージョン: 11.0.5+10 [月 2月 10 10:39:36 JST 2020] 情報: JVM ベンダ: AdoptOpenJDK [月 2月 10 10:39:36 JST 2020] 情報: CATALINA_BASE: C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0 [月 2月 10 10:39:36 JST 2020] 情報: CATALINA_HOME: C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\tomcat\9 [月 2月 10 10:39:36 JST 2020] 情報: コマンドライン引数:-Dcatalina.base=C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0 [月 2月 10 10:39:36 JST 2020] 情報: コマンドライン引数:-Dcatalina.home=C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\tomcat\9 [月 2月 10 10:39:36 JST 2020] 情報: コマンドライン引数:-Dwtp.deploy=C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps [月 2月 10 10:39:36 JST 2020] 情報: コマンドライン引数:-Dfile.encoding=UTF-8 [月 2月 10 10:39:36 JST 2020] 情報: 商用環境に最適な性能を発揮する APR ベースの Tomcat ネイティブライブラリが java.library.path [C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\java\11\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/pleiades-2019-12-java-win-64bit-jre_20191225 (2)/pleiades/eclipse//jre/bin/server;C:/pleiades-2019-12-java-win-64bit-jre_20191225 (2)/pleiades/eclipse//jre/bin;D:\rdb\oracle\product\11.2.0\dbhome_1\bin;C:\app\tfujii\product\11.2.0\client_2;C:\app\tfujii\product\11.2.0\client_2\bin;C:\app\tfujii\product\11.2.0\client_1;C:\app\tfujii\product\11.2.0\client_1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\app\tfujii\product\12.1.0\client_1;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\ActiveState Komodo Edit 11\;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Amazon\AWSCLI\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\Microsoft VS Code\bin;C:\ListCREATOR;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\WINDOWS\system32\config\systemprofile.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\WinSCP\;C:\Program Files\TortoiseSVN\bin;C:\Users\rkida\AppData\Local\Microsoft\WindowsApps;;C:\pleiades-2019-12-java-win-64bit-jre_20191225 (2)\pleiades\eclipse;;.] に存在しません。 [月 2月 10 10:39:36 JST 2020] 情報: プロトコルハンドラ ["http-nio-8080"] を初期化します。 [月 2月 10 10:39:36 JST 2020] 情報: プロトコルハンドラ ["ajp-nio-8009"] を初期化します。 [月 2月 10 10:39:37 JST 2020] 情報: サーバーの初期化 [774]ms [月 2月 10 10:39:37 JST 2020] 情報: サービス [Catalina] を起動します [月 2月 10 10:39:37 JST 2020] 情報: サーブレットエンジンの起動:[Apache Tomcat/9.0.30] [月 2月 10 10:39:37 JST 2020] 情報: 少なくとも1つのJARが、まだTLDを含んでいないTLDについてスキャンされました。 スキャンしたが、そこにTLDが見つからなかったJARの完全なリストについては、このロガーのデバッグログを有効にしてください。 スキャン中に不要なJARをスキップすると、起動時間とJSPのコンパイル時間が改善されます。 [月 2月 10 10:39:37 JST 2020] 警告: セッション ID を生成するための SecureRandom インスタンスの作成に [186] ミリ秒かかりました。アルゴリズムは [186] です。 [月 2月 10 10:39:37 JST 2020] 情報: 少なくとも1つのJARが、まだTLDを含んでいないTLDについてスキャンされました。 スキャンしたが、そこにTLDが見つからなかったJARの完全なリストについては、このロガーのデバッグログを有効にしてください。 スキャン中に不要なJARをスキップすると、起動時間とJSPのコンパイル時間が改善されます。 [月 2月 10 10:39:37 JST 2020] 情報: 少なくとも1つのJARが、まだTLDを含んでいないTLDについてスキャンされました。 スキャンしたが、そこにTLDが見つからなかったJARの完全なリストについては、このロガーのデバッグログを有効にしてください。 スキャン中に不要なJARをスキップすると、起動時間とJSPのコンパイル時間が改善されます。 [月 2月 10 10:39:37 JST 2020] 情報: プロトコルハンドラー ["http-nio-8080"] を開始しました。 [月 2月 10 10:39:37 JST 2020] 情報: プロトコルハンドラー ["ajp-nio-8009"] を開始しました。 [月 2月 10 10:39:37 JST 2020] 情報: サーバーの起動 [816]ms [月 2月 10 10:39:37 JST 2020] java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at test.test.doGet(test.java:72) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/02/10 00:55

クラスパスへ追加はされているのでしょうか。
m.ts10806

2020/02/10 00:56

それにA5M2はあくまでDBを操作するためのツールであって、 Javaとは関係ないと思いますけど・・
Orlofsky

2020/02/10 00:58

質問にダウンロードしたURL、各ソフトウェアの正式なバージョンも明記した方が良いです。OSも。
yureighost

2020/02/10 01:08

catch節のところでprintStackTrace()メソッドを使って まずエラーの詳細を把握した方がいいです。
yoorwm

2020/02/10 01:09

> A5M2というサービスをでデータベースを取得してから 上に書かれている事と関係しますが、A5M2というのはサービスでは無いですよ。 質問からすると、色々な用語を誤解しているような気がするので、まずはチュートリアルでも試してみると良いのではないでしょうか?
gunma_user

2020/02/10 01:32

多くのご指摘、ご助言誠にありがとうございます。 上記の通り、追記しました。 またprintStackTrace()メソッドを追加しましたが、何も出力されませんでした。 書き方に問題があったと思うのですが、どのように修正すればいいのかわからない状態です。。
gunma_user

2020/02/10 01:41

すみません、printStackTraceのエラーがブラウザ画面に出ると勘違いしていました。 コンソールにありましたので、追記します。
yureighost

2020/02/10 04:13

そのエラーだとまずJDBCドライバのライブラリがちゃんと読めてないですね。 「\WebContent\WEB-INF」ではなく「\WebContent\WEB-INF\lib」直下にJDBCドライバのjarを配置してみてください。
gunma_user

2020/02/10 04:28

ありがとうございます。 「\WebContent\WEB-INF\lib」直下に配置しましたが、変わりないようです。。 気になったことがあるのですが、上記の後にJDBCドライバのバージョン等が不適切だったのかと思いOracleの公式サイトから3つほどダウンロードして配置したということと、先程A5M2を使っていて、昨日まではデータベースに接続できていたのにできなくなっていました(”network error 一定の時間を過ぎても応答しなかったため接続できませんでした。または接続済みのホストが応答しなかったため確立された接続は失敗しました。”)。 JDBCドライバのロードに失敗することも、これらのことが原因なのでしょうか。
tetutetu

2020/02/10 06:07

(うろ覚えなのでこっちで) そもそも oracle.jdbc.OracleDriver ↓ oracle.jdbc.driver.OracleDriver じゃなかったでしたっけ。
gunma_user

2020/02/10 06:59

ありがとうございます。 oracle.jdbc.driver.OracleDriverに変更してみたところ、ロードはできなかったのですが、その後詳しい方にご対応いただきJDBCをロードすることに成功しました。 原因が気になっているのですが、操作中の画面は見ていたものの何が決め手になったのかよくわからず、その方がお忙しい等の事情によりまだ直接お聞きできていません。 「jdbc:oracle://・・」のデータベースのIPアドレスが違っていたのでそれが関係していたのかもしれません。 確かなことがお伝え出来ずすみません。 いずれにしてもこの度は誠にありがとうございました。
guest

回答1

0

自己解決

全く自己解決じゃないのですが、ベストアンサーにするための回答がなかったため、自己解決として解決させていただければと思います。
このたびは誠にありがとうございました。

投稿2020/02/10 07:01

gunma_user

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問