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)
回答1件
あなたの回答
tips
プレビュー