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

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

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

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

Java

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

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

Q&A

解決済

3回答

10961閲覧

(JAVA)JSPでデータベースを接続しても、エラーが発生する

yoshim95

総合スコア12

JSP

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

Java

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

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

0グッド

0クリップ

投稿2016/12/23 17:19

編集2016/12/25 12:50

###前提・実現したいこと
JSPを用いて、データベースに格納した学生情報の表示をするプログラムを作っております。ですが、そのデータベースを用いたJSPを起動しても、エラーが発生します。データベースは、Oracle11gを使用しています。

###発生している問題・エラーメッセージ

type 例外レポート メッセージ javax.servlet.ServletException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:560) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:461) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 javax.servlet.ServletException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:909) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838) org.apache.jsp.List_jsp._jspService(List_jsp.java:168) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:125) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:62) java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:264) org.apache.jsp.List_jsp._jspService(List_jsp.java:119) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
重大:Servlet.service() for servlet [jsp] in context with path [/(プロジェクト名)] threw exception [javax.servlet.ServletException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver] with root cause

###該当のソースコード

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- JDBCのために必要なインポート文 --> <%@ page import="java.sql.*"%> <!-- Oracle JDBC Driver のロード --> <% Class.forName("oracle.jdbc.driver.OracleDriver");%> <!-- connection の作成 --> <% Connection conn = DriverManager.getConnection("jdbc:oracle:thin:(ホスト名):(ポート番号):(SID)","(ユーザー名)","(パスワード)");%> <!-- Statement の生成 --> <% Statement stmt = conn.createStatement();%> <% ResultSet rset = stmt.executeQuery ("SELECT * FROM STUDENT");%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>学生情報一覧</title> </head> <body> <% while (rset.next ()) { out.print("<tr>"); out.print("<td>" + rset.getInt(1) + "</td><td>" + rset.getString(2) + "</td><td>" + rset.getString(3) + "</td><td>" + rset.getString(4) + "</td>"); out.print("</tr>"); } %> </body> </html>

###JSP内でそれぞれ表示する情報
rset.getInt(1):学生番号
rset.getString(2):名前
rset.getString(3):生年月日
rset.getString(4):住所

###試したこと
環境変数のCLASSPATHに「ojdbc.jar」のパスを設定しないと読み込めないそうであるが、設定済み。
WEB-INF下のlibにojdbc.jarのファイルを置いてみたが読み込めませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
開発環境:Eclipse4.6
DB:Oracle11g
JDK:jdk-8u102-windows-x64
TomCat:8.0

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

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

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

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

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

guest

回答3

0

ベストアンサー

動的Webプロジェクトの /WebContent/WEB-INF/lib 以下に ojdbc.jarを配置したのに動かない場合は、プロジェクトのビルドパスからjarファイルが除外されているか、サーバにデプロイしたアプリケーションに含まれていないのでしょう。

正しく配置されているかは次の図のように、「デプロイ済みリソース」に含まれる WebContent/WEB-INF/lib にjarファイルが自動的に配置されます。

動的Webプロジェクトのプロジェクトエクスプローラ

投稿2016/12/25 02:27

A-pZ

総合スコア12011

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

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

yoshim95

2016/12/25 08:21

デプロイ済みリソースのフォルダが、JavaScriptリソースの下に表示されていませんが、デプロイしないと出ないのですか? また、デプロイはどのように行えばいいですか?
A-pZ

2016/12/25 08:29

動的Webプロジェクトでプロジェクトを作成すれば、デプロイ済みリソースは常に表示されます。 Eclipseのサーバへデプロイする方法は、今すでにJSPが実行されているなら、それはすでにデプロイされています。
yoshim95

2016/12/25 12:45

私の場合は、動的Webプロジェクトでプロジェクトを作成しても、表示がされていないです。
yoshim95

2016/12/26 03:23

WEB-INFのlibにOracleのclient_1の中のojdbc5を入れたら表示されました。 ojdbcが合っていないのが原因でした。 ありがとうございました。
guest

0

tomcatを使用している、かつEclipseのServerでの実行を使用していないならば、インストールしたtomcatフォルダ配下のlibディレクトリに入れればよかった気がします。

http://tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html#Oracle_8i,9i&_10g

投稿2016/12/24 11:37

編集2016/12/24 11:48
mosapride

総合スコア1480

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

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

yoshim95

2016/12/24 14:42

Eclipseでのサーバーを実行しております。
guest

0

環境変数のCLASSPATHに「ojdbc.jar」のパスを設定しないと読み込めない

これは一般のjavaアプリケーションを動かす際の話だと思いますが、JSPだと「tomcatなどを利用する際にページ内から利用したいライブラリーをどう設定すべきか」を知っておく必要があると思います。「jsp tomcat classpath」などで検索すると解説ページが見つかると思います。「WEB-INF/libの下においておけばよい」といった方法が書いてあるみたいですよ。

投稿2016/12/23 23:31

KSwordOfHaste

総合スコア18394

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

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

yoshim95

2016/12/24 09:57

置いてみましたが、上手くいきませんでした。
KSwordOfHaste

2016/12/24 10:12

そうでしたか。自分はJSP/Oracleの環境について暗い(環境を持ってない)ので今のところこれ以上の知識がありません。ちなみにOracleのJDBCドライバーのページをみると環境によって使用するjarの名前が違うといった情報もありましたのでJDKのバージョンやOSの種類・バージョンTomcatのバージョンなども追記するとよいかも知れません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問