- PR -

Tomcatの再インストール後、jspが正常に動かない

投稿者投稿内容
まめまめまめ
会議室デビュー日: 2003/05/19
投稿数: 17
投稿日時: 2003-05-19 14:30
JAVAの全くの初心者で、@ITの連載や書籍を利用して勉強をしております。
http://www.atmarkit.co.jp/fjava/rensai2/eclipse03/eclipse03.html
の環境を手本として、Oracleから取得したデータをjspでブラウザに表示することをやってみました。

環境は以下の通りです。
Windows2000 SP3
J2SE1.4.1
Eclipse2.0.1
Tomcat4.1.18
Oracle8.1.7

Tomcatの再インストール前はブラウザに表示されたのですが、
Tomcatを再インストールした後、エラーが返ってきます。

別プログラムでコンソールに出力する分には問題なく表示されるのですが、
Web経由で出力した場合のみ、エラーが返ってきます。

TOMCAT_HOME、classpathやTomcatのserver.xmlのファイルの設定は済ましてあります。
原因はTomcatのどこかにあると思うのですが、私には思い当たる節はありません・・・。

すみませんが、皆様ご教授よろしくお願い致します。
まめまめまめ
会議室デビュー日: 2003/05/19
投稿数: 17
投稿日時: 2003-05-19 15:43
補足させて頂きます。
現状で動作するもの、しないものは以下の通りです。

○・・・文字列をjavaでコンソールに出力
○・・・Oracleのデータをjavaでコンソールに出力
○・・・文字列をjspでブラウザに出力
×・・・Oracleのデータをjspでブラウザに出力

以上です。皆様ご教授よろしくお願い致します。
syu
常連さん
会議室デビュー日: 2003/05/15
投稿数: 43
投稿日時: 2003-05-19 17:10
サーブレットからDBに接続してみると成功しますか?
JSP上のJDBCのセット方法が問題では?
まめまめまめ
会議室デビュー日: 2003/05/19
投稿数: 17
投稿日時: 2003-05-19 17:31
ご返答ありがとうございます。

サーブレットからのDB接続はまだ試しておりません。
これから試してみます。

しかし、Tomcatの再インストール前後ではソースの変更はおりません。
ちなみにjspのソースです。
改善すべき点がありましたら、ご指摘下さる様よろしくお願い致します。

<%@ page contentType="text/html; charset=Shift-JIS" %>
<%@ page import = "java.sql.*" %>

<HTML><BODY>
<%
// Oracle JDBC Driverのロード
Class.forName("oracle.jdbc.driver.OracleDriver");

// Oracleに接続
Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:おらくるSID","おらくるID","おらくるパスワード");

// ステートメントを作成
Statement stmt = conn.createStatement();

// 問合せの実行
ResultSet rset = stmt.executeQuery("select empno,ename from emp");

// 問合せ結果の表示
while ( rset.next() ) {
out.println(rset.getString(1)+"<BR>");
}

// 結果セットをクローズ
rset.close();

// ステートメントをクローズ
stmt.close();

// 接続をクローズ
conn.close();
%>
</BODY></HTML>
tetsu
会議室デビュー日: 2001/11/02
投稿数: 9
お住まい・勤務地: 名古屋
投稿日時: 2003-05-19 19:26
こんにちわ。

TOMCATのlibディレクトリにJDBCドライバが入っていないのではないですか?エラーメッセージがあるともう少し分かると思いますが。
まめまめまめ
会議室デビュー日: 2003/05/19
投稿数: 17
投稿日時: 2003-05-20 10:52
ご返答ありがとうございます。

JDBCドライバですが、勉強不足でよく分かりません。
D:\Tomcat 4.1\common\lib\jdbc2_0-stdext.jar というのがありました。
これがJDBCドライバでよろしいのでしょうか。

エラーメッセージは以下の通りです。

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: oracle.jdbc.driver.OracleDriver
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
at java.lang.Thread.run(Thread.java:536)


root cause

javax.servlet.ServletException: oracle.jdbc.driver.OracleDriver
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:533)
at org.apache.jsp.Test02_jsp._jspService(Test02_jsp.java:80)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
at java.lang.Thread.run(Thread.java:536)



--------------------------------------------------------------------------------

Apache Tomcat/4.1.18
syu
常連さん
会議室デビュー日: 2003/05/15
投稿数: 43
投稿日時: 2003-05-20 11:10
そのJDBCドライバーは、クラスパスが通っていますか?
windowsならマイコンピュータ→詳細→環境変数でclasspathを確認してみてください。
まめまめまめ
会議室デビュー日: 2003/05/19
投稿数: 17
投稿日時: 2003-05-20 11:46
システム環境変数にclasspathという変数が存在しませんでした。

変数名・・・classpath
 値 ・・・D:\Tomcat 4.1\common\lib\jdbc2_0-stdext.jar
と新規で登録しましたが、現象は変わりませんでした。

ちなみに、Eclipse側でJDBCのビルドパスを次の様に設定しています。
名前・・・JDBC_Oracle
パス・・・D:/Oracle/ora81/jdbc/lib/classes12.zip

スキルアップ/キャリアアップ(JOB@IT)