Java(Eclipse)でjspからSQLiteへの接続ができない件

実現したいこと

初めて質問させていただきます。Eclipseを使用し、Javaからデータベース接続を行いたいと思い、確認用のプログラムを動作させています。表題に記載したSQLite以外のデータベース(MySQL、H2データベース)への正しく接続できるのですが、SQLiteへの接続時にはエラーとなってしまいます。JDBCドライバ(sqlite-jdbc-3.44.1.0.jar)は、「プロジェクト名\src\main\webapp\WEB-INF\lib」に置いており、EclipseのJavaのビルドパスの設定より、クラスパスに追加しています。

発生している問題・分からないこと

下記サイトと「サーブレット&JSP入門(第3版)」を参考に、JavaでEclipseを使用してデータベース(SQLite)への接続を行おうとしています。https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10265272595
実行時に下記のエラーが発生します。ちなみに、Class.forName("org.sqlite.JDBC")をMySQLの設定Class.forName("com.mysql.jdbc.Driver")やH2データベースの設定Class.forName("org.h2.Driver")へ変更するとエラーは発生しません。(MySQLとH2データベースのJDBCドライバは実行時に使用しているTomcatのフォルダ(C:\pleiades\2022-12\tomcat\9\lib)に置きました)SQlite用のJDBCドライバが読み込めていないのではないかと思うのですが、ご教示いただけますと助かります。何か情報に不足がありましたらご指摘をいただければと思います。宜しくお願い致します。

エラーメッセージ

error

1HTTPステータス 500 – Internal Server Error 2タイプ 例外報告 3 4メッセージ [/connect.jsp] の処理中に行番号 [5] で例外が発生しました。 5 6説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。 7 8例外 9 10org.apache.jasper.JasperException: [/connect.jsp] の処理中に行番号 [5] で例外が発生しました。 11 122: <!DOCTYPE html> 133: <html><head><meta charset="UTF-8"></head> 144: <body> 155: <% Class.forName("org.sqlite.JDBC"); %> 166: </body> 177: </html> 18 19 20Stacktrace: 21 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610) 22 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:489) 23 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) 24 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) 25 javax.servlet.http.HttpServlet.service(HttpServlet.java:779) 26 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 27根本原因 28 29javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 30 org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:657) 31 org.apache.jsp.connect_jsp._jspService(connect_jsp.java:135) 32 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 33 javax.servlet.http.HttpServlet.service(HttpServlet.java:779) 34 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) 35 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) 36 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) 37 javax.servlet.http.HttpServlet.service(HttpServlet.java:779) 38 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 39根本原因 40 41java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 42 org.sqlite.JDBC.<clinit>(JDBC.java:26) 43 java.base/java.lang.Class.forName0(Native Method) 44 java.base/java.lang.Class.forName(Class.java:375) 45 org.apache.jsp.connect_jsp._jspService(connect_jsp.java:120) 46 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 47 javax.servlet.http.HttpServlet.service(HttpServlet.java:779) 48 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) 49 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) 50 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) 51 javax.servlet.http.HttpServlet.service(HttpServlet.java:779) 52 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 53根本原因 54 55java.lang.ClassNotFoundException: org.slf4j.LoggerFactory 56 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1412) 57 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220) 58 org.sqlite.JDBC.<clinit>(JDBC.java:26) 59 java.base/java.lang.Class.forName0(Native Method) 60 java.base/java.lang.Class.forName(Class.java:375) 61 org.apache.jsp.connect_jsp._jspService(connect_jsp.java:120) 62 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 63 javax.servlet.http.HttpServlet.service(HttpServlet.java:779) 64 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) 65 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) 66 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) 67 javax.servlet.http.HttpServlet.service(HttpServlet.java:779) 68 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 69注意 原因のすべてのスタックトレースは、サーバのログに記録されています。

該当のソースコード

connect.jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<!DOCTYPE html> 3<html><head><meta charset="UTF-8"></head> 4<body> 5<% Class.forName("org.sqlite.JDBC"); %> 6</body> 7</html>

試したこと・調べたこと

上記の詳細・結果

Class.forName("org.sqlite.JDBC")をMySQLの設定Class.forName("com.mysql.jdbc.Driver")やH2データベースの設定Class.forName("org.h2.Driver")へ変更するとエラーは発生しません。JDBCドライバが読み込めていないのではないかと思うのですが、知識不足で解決できていません。

補足

特になし

コメントを投稿

0 コメント