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

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

新規登録して質問してみよう
ただいま回答率
85.31%
JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

1040閲覧

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

kokoya

総合スコア1

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2024/01/04 01:53

実現したいこと

初めて質問させていただきます。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>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

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

補足

特になし

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラー内容を見る限りではSLF4Jが不足しているようです。sqlite-jdbcがSLF4Jを前提ライブラリとして要求するので、以下URLにある通り、slf4j-api-1.7.36.jarをダウンロードし、ビルドパスに追加すると解消すると思われます。

https://github.com/xerial/sqlite-jdbc?tab=readme-ov-file#usage

投稿2024/01/04 07:53

neko_the_shadow

総合スコア2386

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

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

kokoya

2024/01/04 11:02

ありがとうございました。教えていただいた内容で正しく動作させることができました。 大変助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問