• ベストアンサー

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タグを追加したら、 今度は何の問題もなく意図通りの設定が反映されて動作しました。 一体何が悪いのか、どなたご教授願えないでしょうか?

  • rucho
  • お礼率100% (2/2)
  • Java
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • 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

  • JSPが表示出来ません。

    Eclipseで作成したjspを表示しようとするとHTTP404のエラーが起こります。 「sample」というプロジェクトを作成し、その中に簡単なjspを 配置しているのですが、そもそもプロジェクト(http://localhost:8080/sample/) にアクセスした時点で既にHTTP404のエラーが起こってしまいます。 コンテキスト(sample.xml)は次のように設定しています。 <Context path="/sample" reloadable="true" docBase="C:\eclipse3.4\workspace\sample" workDir="C:\eclipse3.4\workspace\sample\work" /> コンテキストの設定に誤りがあるのでしょうか? どなたか是非原因を教えて下さい。本当に困っています。 開発環境を以下の通りです。 eclipse3.4 Tomcat5.5 jdk1.6.0_12 宜しくお願いします。

    • ベストアンサー
    • Java
  • Tomcat 4.1.18でのWebアプリ追加方法

    お世話になります。 RedHat8.0にj2sdk1.4.0_03とtomcat-4.1.18をインストールし サンプルの動作は確認できました。 その後 server.xmlへ ------------------------------- <Context path="/ogjsp" docbase="/home/og/webapps" debug="0" reloadable="true"> </Context> ------------------------------- を追記しTomcat再起動後 http://localhost:8080/ogjsp/hello.jsp を表示させようと しましたが http 404 がでてしまいます。 試しにtomcat-4.0.6をインストールして 同じように設定したところきちんと表示されました。 tomcat-4.1.18からなにか他に設定が必要なのでしょうか? ご存知の方がいましたらよろしくお願いします。

  • server.xmlの設定

    開発環境 Windows XP Tomcat 4.1.31 Eclipse 2.1.3 Eclipseを使ってJSPの開発をはじめたのですがEclipseのフォルダをJSPの仮想ディレクトリに設定するところでうまくいかず困っています。 server.xmlに以下を追加しました。 <Context path="/myWeb" docBase="C:\Documents and Settings\Administrator\My Documents\NOMURA \eclipse\workspace\TEST001_01\myWeb" workDir="C:\Documents and Settings\Administrator\My Documents\NOMURA \eclipse\workspace\TEST001_01\j2src\org\apache\jsp" reloadable="true"/> この状態で http://localhost:8080/myWeb/index.jsp にアクセスしても404エラーでページが表示されません。 Tomcatをインストールし、 http://localhost:8080 にてindex.jspが表示されることは確認できました。 また、jspファイル自体は C:\Documents and Settings\Administrator\My Documents\NOMURA\eclipse\workspace\TEST001_01\myWeb の下に置いています。 ファイルに問題があるのかもと思い、http://localhost:8080/index.html にて表示できたindex.htmlファイルをmyWebフォルダの下に置いてみたのですが、やはりだめでした。 何か設定が足りていないのでしょうか? どなたか教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • TOMCATでのログ出力

    「path="/ABC"」と「path="/XYZ"」でアクセスされた際に、log4Jのファイルとして 別ファイルに出力したいです。(DailyRollingAppenderを利用) TOMCATで、同一のアプリ/同一のlog4Jの設定ファイルを 以下の様にデプロイします。Server.xmlの記述は以下の様な形です。 -------------------- Server.xmlの記述 -------------------- <Context docBase="(アプリケーション)" path="/ABC" reloadable="true" debug="0" crossContext="true"> : </Context> <Context docBase="(アプリケーション)" path="/XYZ" reloadable="true" debug="0" crossContext="true"> : </Context> log4Jの設定で、これらを出しわける事はできないでしょうか? #TOMCAT起動時に、アプリ側で「ContextPath」を取得して、log4J #のファイル名を変更する方式で実現はできそうなのすが、あまりスマートな #方式とは思えませんので。

  • Eclipseでプロジェクトを作るとコンテキスト記述子が出来ない?

    「はじめてのJSP&サーブレットプログラミング」という本で勉強しています。 その本では「データベースへの接続で、データソースを使ってデータベースに接続するようにするために、データソースの設定にコンテキスト記述子への記述が必要です。Tomcatの場合は~ディレクトリ以下にあります。」とあるのですが、Eclipseで「動的WEBプロジェクト」でプロジェクトを作ると、そこのフォルダにそのXMLファイルが出来ません。 ためしに「Tomcatプロジェクト」でプロジェクトを作ってみるとプロジェクトを作ったらすぐ出来ました。 これはEclipseでこういうサーブレットでデータベースに接続するような作業は「Tomcatプロジェクト」で作るように、ということなのでしょうか?しかし、「動的WEBプロジェクト」で作ったプロジェクトでは新規で何かファイルを作る時に候補に自動的にJSPやサーブレットといったものが挙がるのでやはりサーブレットは「動的WEBプロジェクト」で作るのでは? と分からないでいます。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcat 4.1での配備方法

    Tomcat 4.0で動作していたアプリがTomcat 4.1だと動作しません。配備方法が変わったんでしょうか? 導入時のサンプル/examplesのサーブレット/JSPは動きますが、そのContext要素の上に記述したContextのdocBaseで指定したパスのWEB-INF/classes/*.classがブラウザから呼び出せないのです(localhost:8080/.../servlet/*)。ちなみに、ドキュメントルート直下にindex.htmlをおいたところ、問題なく参照できました(localhost:8080/.../index.html)。 よろしくお願いします。

    • ベストアンサー
    • Java
  • tomcatインストール後のアプリの配置

    初めて投稿させていただきます。 現在、tomcat+Apache+cocoon でのシステムを製作しています。 機能としては、ログイン画面から認証が行えた後に、サーブレットを介して別画面に移動するというもので、そのメイン画面から各機能を実現するというものです。 ログイン画面での認証成功後、画面遷移が発生したときにURL部分に「null」が含まれてしまいます。 ログイン時には <http://localhost/TEST/jsp/login.jsp> を直接指定します。 ログイン後の移動先は <http://localhost/TEST/jsp/main.jsp> としたいところが <http://localhost/null/jsp/main.jsp> となります。 tomcatでの設定内容 server.xmlへの追加項目 ------------------------------------ <Context path="TEST" docBase="TEST" debug="0" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_TEST_log." suffix=".txt" timestamp="true"/> </Context> -------------------------- 考えられるのはここらへんだと思われますが、その他にURLにnullが含まれてしまう原因はないでしょうか。 Apache のconf関連設定についても確認済みです。 同様の現象に遭われた方または解決方法を知っている方よろしくお願いいたします。 ※ここに来るまでにHP上をいろいろ検索しましたが該当するような事例が無かったため投稿させていただきました。

    • ベストアンサー
    • Java
  • Eclipse+TomcatのHTML表示について

    Eclipse+TomcatのHTML表示について EclipseにTomcatプラグインを追加して、下記動作を行ったところ404エラーが出てしまいます。 WEB-INF以下に置いたHTMLファイルを正常に表示するためには、どのような設定が必要なのでしょうか? 環境:eclipse3.4/Tomcat6 1.プロジェクトの作成 新規プロジェクト>Tomcatプロジェクト プロジェクト名:Example コンテキスト名:/Example Webアプリケーション・ルートとするサブディレクトリ:/ コンテキスト定義の更新を可能にする(server.xml またはコンテキスト・ファイル):チェック 2.コンテキストの更新 プロジェクト右クリック>Tomcatプロジェクト>コンテキスト定義を更新 3.Tomcat起動 Tomcatプラグインからポート8080でTomcatを起動。 4.HTMLを配置してアクセス(1) 配置:/Example/WEB-INF/index.html アクセス:http://localhost:8080/Example/index.html 結果:404エラー 4.HTMLを配置してアクセス(2) 配置:/Example/WEB-INF/index.html アクセス:http://localhost:8080/Example/WEB-INF/index.html 結果:404エラー 5.HTMLを配置してアクセス(3) 配置:/Example/index.html アクセス:http://localhost:8080/Example/index.html 結果:正常表示

    • ベストアンサー
    • Java
  • Tomcat6.0のContext要素について

    Tomcat6.0のContext要素についてなのですが、今までEclipseで自動的にTomcat/conf/sever.xmlに記述してくれたので気にしてなかったのですが、 http://www.oki.com/jp/oss/document/tomcat/tomcat-6.0.14/build/tomcat-docs/config/context.html を見たのですが、server.xmlに記述する事はよくないと書いてありました。 それと、今までのバージョンのTomcatと違って記述する内容も違うみたいなのですが、debug="0"とかtrusted="false"とか書くと、警告が表示されます。 Eclipseを使わずにTomcatを使用するには、どういう風にContext要素を書けばいいのでしょうか。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Java
  • 困ってます

    自分は今TomcatでサーブレットとJSPの勉強をしています。 サーブレット(hello.class)はTomcat-conf-server.xmlに <Context path="/test"    docBase="webapps/test" crossContext="false" debug="0" reloadable="true" > </Context> を追加したことにより http://localhost:8080/test/servlet/hello で動作は確認しました("Helloworld"の表示のみ) JSP(hello.jsp)は Error: 500 Internal Servlet Error:が表示されて実行できません。 ちなみにhello.jspはtestディレクトリの直下に保存しています。 ・hello.jspのスクリプト <%@page contentType="text/html;" %> <html> <head> <title>JSPTEST</title> </head> <body> <% out.println("HELLO WORLD!"); %> </body> </html> ※ちなみにcontentType="text/html;charset=Shift_JIS"とすると  ページが見つからないというエラーになりました。 ・JSPファイルを表示するアドレス http://localhost:8080/test/hello.jsp 開発環境は RedHatLinux7.2 Java2 SDK 1.3.0 Jakarata Tomcat 3.2.4 で、 環境変数は JAVA_HOME=/usr/java/jdk1.3.0_02 TOMCAT_HOME=/usr/src/jakarta/tomcat PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/lib/servlet.jar CLASSPATH=. です 何か分かる事がありましたらご教授御願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう