サーブレットを動かすためには?

このQ&Aのポイント
  • Tomcat5.0を使ってサーブレットを動かす方法と設定について解説します。
  • JSPは正常に動作しているが、サーブレットが動かない場合の解決策を解説します。
  • エラーメッセージから推測すると、サーブレットのインスタンス割り当ての問題が原因の可能性があります。対処方法について詳しく説明します。
回答を見る
  • ベストアンサー

サーブレットを動かすためには?

Tomcat5.0を使ってサーブレットを動かそうとしましたが、動きません。 JSPは問題なく動きます。 サーブレットのコンパイルは問題なくできているようです。また、ほかで動いていたものをためしに使ってみたのですが、動きません。 何か、設定をしなければならないのでしょうか。 現在は、サーブレットを動かそうとすると、 HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: パス /yoko/servlet/test にサーブレットインスタンスを割り当てられません org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:388) org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 原因 java.lang.IllegalAccessException: Class org.apache.catalina.core.StandardWrapper can not access a member of class test with modifiers "" sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57) java.lang.Class.newInstance0(Class.java:302) java.lang.Class.newInstance(Class.java:261) org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:369) org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) このように表示されています。 何が原因なのか、対処策など、わかることがありましたらお教えください。 よろしくお願いいたします。

  • ykmtk
  • お礼率78% (11/14)
  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Tomcatのサンプルサーブレットは表示できますか? (ホスト名/servlet/examples) おそらくエラーコードとスタックとレースの内容から推測するにTomcat側かコンテキスト(内のweb.xml)の設定ファイルでの記述ミスではないでしょうか? コンテキストパスの設定 サーブレットクラスとクラスのマッピング などの記述が不正なためサーブレットのインスタンス生成がされていないのではないのでは? JSPの場合は上記の設定しなくても自動的にパスを指定するとコンパイルして表示してくれるものなので。 私も最初上記の設定がしっかりできていないためエラー表示された経験があります。 "Java,サーブレット"などで検索すると設定の詳細について説明しているサイトがヒットすると思いますので調べてみてください。

ykmtk
質問者

お礼

回答してくださって、ありがとうございます。 web,xmlなど、いろいろ試してみたんですが、うまくいかずに、途方にくれていました。 servlets-examplesで試してみましたところ、問題なく動作しましたので、servlets-examplesフォルダをコピーして作業用フォルダにしてみたら、うまくいきました。 ただ、今までほかで動いていたものを持ってきても動かないものもあり・・・。新しく作ると動くのですが・・・。 謎の部分もありますが、動くようにはなりました。 ありがとうございました。

関連するQ&A

  • サーブレットインスタンスを割り当てられません・・・とは

    データベースを作成中にサーブレットでのエラーがどうしてもわかりません・・・。 設定のファイル(web.xmlやserver.xml)のファイルがおかしいのか、サーブレットの配置がおかしいのか、プログラム自体がおかしいのか・・・どうなのでしょうか? エラーは以下のように出るんですが・・・ HTTPステータス 500 - -------------------------------------------------------------------------------- type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: パス /rits/servlet/rits.SrvMain にサーブレットインスタンスを割り当てられません org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:388) org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 原因 java.lang.OutOfMemoryError: Java heap space 注意 原因のすべてのスタックトレースは、Apache Tomcat/5.5.20のログに記録されています -------------------------------------------------------------------------------- Apache Tomcat/5.5.20 sampleのサーブレットなどはちゃんと表示されるのですがどうしてでしょうか・・?? 原因などがわかれば教えてください。 ちなみにweb.xmlはinvokerを有効にして使っています。 よろしくおねがいします。

  • サーブレットが動かなくなりました・・・

    Apache+Tomcatで環境(以後、環境A)を作り Webアプリが正常に動いていたのですが、 別の環境(以後、環境B)で動いていたWebアプリを 環境Aの$CATALINA_HOME/webapps以下にコピーしたところ 下記のエラーが出てサーブレットが動かなくなってしまいました。 (JSPは動きます) 動作環境は以下になります。 OS:Redhat Enterprise Linux AS4 Update5 Tomcat:5.5.25 JDK:1.6.0_03 環境A、B共に同環境で Webアプリも同じものが動いていました。 対処法の分かる方がいらっしゃいましたら よろしくお願いします。 java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:620) java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) java.net.URLClassLoader.defineClass(URLClassLoader.java:260) java.net.URLClassLoader.access$000(URLClassLoader.java:56) java.net.URLClassLoader$1.run(URLClassLoader.java:195) java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:188) java.lang.ClassLoader.loadClass(ClassLoader.java:306) sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) java.lang.ClassLoader.loadClass(ClassLoader.java:251) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1277) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1208) org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:370) org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:134) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

  • tomcat5.0のエラー内容を教えたください

     WINDOWS2000 SERVER SP4にj2sdk1.4.2_13、Tomcat 5.0をいれてウェブアプリケーションサーバを構築しているのですが、下記のようなtomcatのlocalhost_logが出てサーブレット(RT001JV.class)がうまく動きません。  大変お手数ですけれどもどなたかアドバイスよろしくお願いします。 2007-02-21 11:50:22 StandardWrapperValve[RT001JV]: サーブレット RT001JV のServlet.service()が例外を投げました java.lang.NullPointerException at RT001JV.doPost(RT001JV.java:122) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462).......

  • サーブレットのコンパイルについて

    はじめまして。 学校の課題の方でJSP/サーブレットをやっているのですが、サーブレットのコンパイルが通りません。 プログラムとエラーと環境変数は以下の通りです。 【プログラム】 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"); } } 【エラー】 HelloServlet.java:2: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloServlet.java:3: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ HelloServlet.java:5: シンボルを解決できません。 シンボル: クラス HttpServlet 場所 : HelloServlet の クラス public class HelloServlet extends HttpServlet ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletRequest 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletResponse 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス ServletException 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:9: シンボルを解決できません。 シンボル: クラス printWriter 場所 : HelloServlet の クラス printWriter out = response.getWriter(); 【環境変数】 CATALINA_HOME C:\servletbook\apache-tomcat CLASSPATH %CATALINA_HOME%\common\lib\jsp-api.jar;%CATALINA_HOME%\webapps\atmarkit\WEB-INF\classes;%CATALINA_HOME%\common\lib\servlet-jsp.jar; よろしくお願いします。

  • サーブレットの実行について

    はじめまして。迷い猫です。 Javaを始めて、まだ2週間の初心者です。 これから、Javaを使って開発をしていこうと猛勉強中です。 DBを使った処理で、コンパイルは通るのですが、実行をするとエラーが出てしまいます。 JDBCの設定かなと思い、調べてみたのですがわからないため、ここに質問をさせていただきました。 エラー内容の詳細ですが、 ********** START exception javax.servlet.ServletException: サーブレットの実行により例外を投げました filters.SetCharacterEncodingFilter.doFilter(Unknown Source) root cause java.lang.NoSuchMethodError: study.struts.model.biz.LogonAuth.authentication(Ljava/lang/String;Ljava/lang/String;)V study.struts.action.LogonAction.execute(Unknown Source) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) javax.servlet.http.HttpServlet.service(HttpServlet.java:763) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) filters.SetCharacterEncodingFilter.doFilter(Unknown Source) ********** END 長くなって申し訳ありませんが、わかる方いらっしゃいましたら、どうかご教授宜しくお願い致します。 開発環境(クライアント) ・WindowsXP ・j2sdk1.4.2_02 ・Tomcat5 ・Struts1.1

    • ベストアンサー
    • Java
  • MySQLとEclipseの接続方法について

    みなさん初めまして。 SQLについて只今勉強中の者です。 EclipseとMySQLを接続したいのですが、どうしても接続できません。 利用環境 apache-tomcat-6.0.36 MySQL5.5 Windowsはxpです。 apache-tomcat-6.0.36を利用しており、JDBCドライバをダウンロード後、Tomcat内のcommon\lib内にmysql-connector-java-5.1.22-binを導入し、環境変数でパスを通しています。 TomcatとEclipseの接続は確認しています。 また、MySQLについては起動確認や、データベース作成は行えました。 原因のjava.lang.ClassNotFoundException: com.mysql.jdbc.Driverから、JDBCドライバにパスが通っていないため接続が出来ていないと考えております。 初歩的な質問かもしれませんが宜しくお願い致します。 以下は実行した際に表示された内容です。 HTTPステータス 500 - -------------------------------------------------------------------------------- type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 原因 javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794) org.apache.jsp.admin_jsp._jspService(admin_jsp.java:108) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 原因 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66) java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:186) org.apache.jsp.admin_jsp._jspService(admin_jsp.java:66) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 注意 原因のすべてのスタックトレースは、Apache Tomcat/6.0.32のログに記録されています -------------------------------------------------------------------------------- Apache Tomcat/6.0.32 以上です、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • サーブレットを始めようとしたのですが・・・

    サーブレットを始めようとして、「10日でおぼえるJSP/サーブレット入門教室」を使って勉強しようとしているのですが、最初のファイルをコンパイルしようとしたら下記のようなエラーが出てコンパイルできませんでした。 SrvIntro.java:6: パッケージ javax.servlet は存在しません。 import javax.servlet.ServletException; ^ SrvIntro.java:7: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServlet; ^ SrvIntro.java:8: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServletRequest; ^ SrvIntro.java:9: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServletResponse; ^ SrvIntro.java:11: シンボルを解決できません。 シンボル: クラス HttpServlet 場所 : day07.SrvIntro の クラス public class SrvIntro extends HttpServlet{ ^ SrvIntro.java:12: シンボルを解決できません。 シンボル: クラス HttpServletRequest 場所 : day07.SrvIntro の クラス public void doGet(HttpServletRequest request, HttpServletResponse respon se) ^ SrvIntro.java:12: シンボルを解決できません。 シンボル: クラス HttpServletResponse 場所 : day07.SrvIntro の クラス public void doGet(HttpServletRequest request, HttpServletResponse respon se) ^ SrvIntro.java:13: シンボルを解決できません。 シンボル: クラス ServletException 場所 : day07.SrvIntro の クラス throws ServletException, IOException{ ^ エラー 8 個 調べた感じだとクラスパスの設定が間違っている可能性大ということらしいのですが、何度確かめてもクラスパスは合ってると思うのです・・ 何かこれじゃないか?という原因に心当たりがあればよろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcatによるサーブレット起動がうまくいきません

    サーブレットを呼び出すと以下のようなエラーが発生します。 ---------------------------------------------------- type Exception report message Internal Server Error description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request. exception javax.servlet.ServletException: ラッパがサーブレットクラス classes/toroku1.class またはそれが依存するクラスを見つけることができません at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:873) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) ---------------------------------------------------- なぜでしょうか? 教えてください。m(__)m

    • ベストアンサー
    • Java
  • サーブレットが上手く作動しません。

    下記のようなエラーが出ています。 エラー表示の意味が全く分からず、検索かけても解決できそうにないので質問しました。 HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; page.Sflow1.doGet(Sflow1.java:75) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) //ソースコードが必要でしたら別途記載いたします。 解決策などございましたらご教示お願いします。

    • ベストアンサー
    • Java
  • Eclipse BIRT Viewer 2.6 & tomcat 6.

    Eclipse BIRT Viewer 2.6 & tomcat 6.0.29で、http://www.birt-exchange.org/org/wiki/index.php?title=GSG:Getting_Started_with_WebViewerExample#Installation_Steps のURLにあるとおり設定したのですが、表示されるページの「View Example」をクリックすると、 以下のエラーが発生してしまいます。何かPluginが足りないのでしょうか?または、tomcatの設定が悪いのでしょうか? The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: サーブレットクラス org.eclipse.birt.report.servlet.ViewerServlet を初期化中にエラーが発生しました org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) java.lang.Thread.run(Thread.java:619) 原因 java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:45) org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45) java.security.AccessController.doPrivileged(Native Method) org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41) org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33) org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:513) java.lang.Class.newInstance0(Class.java:355) java.lang.Class.newInstance(Class.java:308) org.apache.catalina.valves.ErrorReportValve.invoke

    • ベストアンサー
    • Java

専門家に質問してみよう