• ベストアンサー

サーブレット実行時のエラー

サーブレットを実行したときにTomcatでこのようなエラーが出てしまいます。 http://aohina.boy.jp/err.bmp クラスパス&パスはすべて通してあり、http://localhost:8080/には接続できますのでTomcatは動いてると思います。 Tomcatのバージョン:5.5.9 Javaのバージョン:jdk1.5.0_02 ここを参考にサンプルプログラムを作ろうと思ってます。 http://www.hellohiro.com/servlet.htm

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

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

こんにちは、invokerの設定では私も四苦八苦した覚えがあります。 未だに勉強中ですので間違った内容かも知れませんが、何かのヒントになれば幸いです。 >ラッパがサーブレットクラス javahello.HelloWorldServlet ・・・を見つけることができません。 上記のメッセージから、servlet-api.jarにパスは通っていて、invokerクラスは呼び出せていますね。 >java.lang.ClassNotFoundException: javahello.HelloWorldServlet このメッセージからは、javahelloパッケージに属しているHelloWorldServletを見つけることができていないことが分かります。 javahelloパッケージに属しているjavahello.HelloWorldServletにアクセスする場合は、 http://localhost:8080/javahello/servlet/javahello.HelloWorldServlet というようにクラス名をパッケージ名を含めた完全修飾子で指定する必要があります。 (ソースの先頭には、package javahello;が記述されていますよね。) 私の理解している範囲で一般的な名称で書き直すと、以下のようになります。 http://localhost:8080/[コンテキストパス]/[サーブレットマッピングで指定したURLパターン]/[パッケージ].[サーブレット] サーブレットがパッケージに属していない場合は、[パッケージ].の部分は不要です。 【補足】 %TOMCAT_HOME%\conf\Catalina\localhost\javahello.xmlは作成してあるでしょうか? もし作成していないのならば、以下の内容を記述して下さい。 <Context path="/javahello" docBase="[%TOMCAT_HOME%のパスを設定]\webapps\javahello" reloadable="true"/> 【補足2】 以前のQAでお勧めしたTomcatハンドブックですが、実は私も購入しておりません(笑) invokerの設定で悩んだ時に立ち読みしまして、内容が良かったのでお勧めしました。 参考URLにはTomcat5.x系でのServletの実行方法がありますので、そちらもどうぞ。

参考URL:
http://www.javaroad.jp/opensource/js_tomcat2.htm
kuninari
質問者

補足

できました!!ありがとうございました;;

その他の回答 (2)

回答No.2

「クラスパス&パスはすべて通してあり」とありますが、 ClassNotFoundException と表示されている以上、TOMCATがサーブレットクラスを認識できていないようですね。 サーブレットクラスが、どこのディレクトリに入っているのか確認してください。WEB-INF/classes/javahelloに置いているのか、それ以外なのかご確認ください。

  • thamansa
  • ベストアンサー率40% (95/232)
回答No.1

現行のTomcatでは、servlet/サーブレットクラス名 でのアクセスができないはずです。これはセキュリティ上の観点からデフォルト設定で無効にされていたような・・・ 上記の設定を解除するか、web.xmlにサーブレットマッピングの設定をしてください。これらについては自分でお調べください。

kuninari
質問者

補足

サーブレットマッピングの設定はしてあるんですが・・・ダメみたいなんです。