• ベストアンサー

Tomcat4.1.31でのserver.xmlの<Context>の追加について

環境:OS:win2k Tomcat4.1.31+j2sdk1.4.2_05 eclipse3.0.1 E:\eclipse_project\MyProject以下で作業しています。 参考書籍:JavaWebプログラミング徹底入門(技術評論社) 環境変数などの設定もすませ、http://localhost:8080/index.jspも見れて、http://localhost:8080/examples/servlet/HelloWorldExampleなどのサーブレット・jspのサンプルなども全て正常に動きます。 server.xmlの<!-- Tomcat Root Context -->のすぐ下の行に <Context path="/rucho" reloadable="true" docBase="E:/eclipse_project/MyProject" debug="0" crossContext="true"/> と追加して再起動して、サンプルのクラスをコピーしても、 正常に表示されません。http404エラーが出ます。 他のサーブレットクラスや、本のサンプルをコピーしても同様です。 また、NO,1091223の件を参考にマネージャーから パス: /rucho ディレクトリのURL:file:E:/eclipse_project/MyProject としてもだめでした。 tomcat自体を入れ直してみたりもしましたが、だめでした。 E:/eclipse_project/MyProject/jspにindex.jspを置くと問題なく表示されます。 さらに、本に付録として付いていたTomcat4.0.6を入れて、 server.xmlに全く同じContextタグを追加したら、 今度は何の問題もなく意図通りの設定が反映されて動作しました。 一体何が悪いのか、どなたご教授願えないでしょうか?

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

  • ベストアンサー
  • davosuke
  • ベストアンサー率61% (34/55)
回答No.2

補足説明お願いします。 >サンプルのクラスをコピーしても、 どこにコピーされましたか?? >また、NO,1091223の件を参考にマネージャーから >パス: /rucho >ディレクトリの>URL:file:E:/eclipse_project/MyProject >としてもだめでした。 だめでした。とありますが、 何がだめだったのでしょうか?? (1)マネージャーからアプリケーションに  インストールはできましたか?? (2)インストールはうまくいってhttp://localhost:8080/ruchoが表示でないのですか?? >E:/eclipse_project/MyProject/jspにindex.jsp >を置くと問題なく表示されます。 とありますが E:/eclipse_project/MyProjectの配下に WEB-INFフォルダーはありますか?? あるのでしたら WEB-INFフォルダー配下に web.xmlがありますか?? 以上、よろしくお願い致します。

rucho
質問者

お礼

解決できました! おかげでweb.xmlに原因があることに気がつけたので調べてみたら、conf/web.xmlの <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> が、雑誌についてるほうではちゃんと有効になっているのに対し、4.1.31では、デフォルトではコメントアウトされていることに原因がありました。 これのコメントをはずすorWEB-INF配下のweb.xmlに記述するかで、正常に動作する様になりました。 お騒がせしてすいませんでした。

rucho
質問者

補足

すいません、800字以内に納めようとしたら、とんでもなく情報不足になってしまってました。 コピー先はWEB-INF/classesです。 マネージャー>インストはいけて2だとディレクトリの中身が見える状態になります。 http://localhost:8080/rucho/servlet/HelloWorldExampleだとHTTP404です。 >WEB-INF配下にweb.xmlは? あるにはあるのですが、xml宣言とDOCTYPEと<webapp />しか記述されていない状態です(本に記載されているままです)サンプルもweb.xmlを削除したら動作しなくなりました。しかし、本についていたTomcatのverではそれでもいけるんですが…… ちなみに、新しい<Context>を設定してサンプルのWEB-INFを丸ごとコピーしたら正常に動作しました。 やはりweb.xmlが原因くさいです。

その他の回答 (1)

回答No.1

こんにちは。 うーん、原因はちょっとわかりませんね・・・。 4.0系と4.1系でのアーキテクチャの違いはありますが、そこの部分は変わってませんし・・・。 Eclipseで開発されているので、ProjectをWeb-Appsの下(の新規ディレクトリ)に持って行ってはダメですか? その方がいろいろ楽(web.xmlの定義など)ですが・・・。 お力になれずにすみません・・・。 (^^ゞ

rucho
質問者

お礼

とんでもないです、レスありがとうございます。 Web-Apps配下に持っていくのは、別に問題ありません。 ただ、勉強としてやっていることもあり、 2つのバージョンで、片方がいけて片方ができないというのがどうにも気持ち悪くて……。 どうもweb.xmlが怪しい様のかもしれません……

関連するQ&A

専門家に質問してみよう