- - PR -
CentOS で サーブレット を使って OracleDB と接続
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-04-14 03:56
はじめまして。
お忙しいところ恐縮ですが、よろしくお願い致します。 <目的> 「サーブレットを利用して、OracleDBと接続」することを目的としています。 現状、Webブラウザにて閲覧し、Tomcatによるエラーメッセージが表示されてしまいます。 <環境> CentOS : 4.6 Java : jdk1.5.0_14 Apache : 2.0.52 Tomcat : 6.0.16 JK : 1.2.26 Oracle : 10.2.0.1.0(XE) # echo $CLASSPATH .:/usr/java/jdk1.5.0_14/jre/lib:/usr/java/jdk1.5.0_14/lib:/usr/java/jdk1.5.0_14/lib/tools.jar:.:/usr/java/jdk1.5.0_14/jre/lib:/usr/java/jdk1.5.0_14/lib:/usr/java/jdk1.5.0_14/lib/tools.jar:/usr/local/tomcat/lib/servlet-api.jar:/usr/local/tomcat/lib/lib/jsp-api.jar:/usr/local/tomcat/lib:/usr/local/tomcat/lib:/usr/local/tomcat/lib/servlet-api.jar:/usr/local/tomcat/lib/jsp-api.jar:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/jdbc/lib/ojdbc14.jar:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/jdbc/lib/ojdbc14_g.jar (/etc/profileには繰り返し同じパスは書いてないのですが....) #/etc/httpd/conf.d/jk.conf JkMount /jsp/* ajp13 <現状> http://www.atmarkit.co.jp/fjava/rensai/jdbc02/jdbc02.html を参考にして、JavaDataAccess01.javaを(コピペですが)作成し、 (oracle URLは変更します....今回はそれ以前ですが...) ソースは、 jsp/WEB-INF/src/内に。 javacよりコンパイルも正常にすることができ、 クラスは、 jsp/WEB-INF/src/JavaDataAccess01.class が出来た事を確認。 # コンテキスト名「jsp」 web.xml内で、アプリの登録。 ##ここから <servlet> <servlet-name>JavaDataAccess01</servlet-name> <servlet-class>JavaDataAccess01</servlet-class> </servlet> <servlet-mapping> <servlet-name>JavaDataAccess01</servlet-name> <url-pattern>/JavaDataAccess01</url-pattern> </servlet-mapping> ##ここまで <エラーメッセージ> http://x.x.x.x/jsp/JavaDataAccess01 へアクセス ##ここから HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: サーブレットクラス JavaDataAccess01 を初期化中にエラーが発生しました org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) java.lang.Thread.run(Thread.java:595) 原因 java.lang.IllegalAccessException: Class org.apache.catalina.core.StandardWrapper can not access a member of class JavaDataAccess01 with modifiers "" sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65) java.lang.Class.newInstance0(Class.java:344) java.lang.Class.newInstance(Class.java:303) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) java.lang.Thread.run(Thread.java:595) 注意 原因のすべてのスタックトレースは、Apache Tomcat/6.0.16のログに記録されています Apache Tomcat/6.0.16 ##ここまで <備考?> 下記のアプリは正常に表示されました。 http://x.x.x.x/jsp/HelloServlet HelloServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { PrintWriter out = response.getWriter(); out.println("Hello! John!"); } } 何か設定が間違っているからエラーが出るのでしょうけど、何を間違えているのかわかりません。。。。 なぜに初期化中にエラーが出るのか、探し方が悪いのか改善できる方法を探し出せませんでした。 サーブレットは独学故に知識も断片している所も有り、不備お掛け致しますが、ご教授よろしくお願い致します。 また、不足している情報等がありましたら都度展開致します。。。 |
1