• ベストアンサー

SampleのServletが実行できません

数週間悩んで解決できませんでしたので、投稿させて頂きました。 環境は以下の通りです。 OS :WindowsNTServer4.0(SP6) WebServer :IIS4.0 Servlet-Engine :Tomcat3.2.1(バイナリ版) JavaVM :J2SE SDK 1.3.02 IIS-Tomcatリダイレクタ:isapi_redirect.dll 設定の仕方は、 http://www.dmz.hitachi-sk.co.jp/Java/Tech/servlet/tomcat3.2.html#iis の通りに行いました。 設定終了後、http://localhost/examples/servlets/ は正常に表示されたのですが、PCを再起動後にもう一度上記のページを表示すると「ファイルが見つかりません」のエラーが発生してしまいます。 他に設定しなければならない箇所があるのでしょうか? 教えてください。 宜しくお願いします。

  • Java
  • 回答数4
  • ありがとう数3

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

  • ベストアンサー
  • misoka
  • ベストアンサー率35% (56/160)
回答No.4

No.3で回答させて頂いたmisokaです。 ポート8007のログ(Q2.)は、Contextのログ(Q1.)と 同じコンソールに出るはずのものです (が、IISの場合は試したことがないので、ちょっと 曖昧ではあります(すみません)。 とはいえ、この当たりの動作がApacheとIISとで 変わってしまうとはあまり思えないのですが...)。 いちおう、デフォルト8007ポートは、WebサーバとTomcatと の連携を行うためのポートです。これがオープンしていないと TomcatはWebサーバにアドオンできません。 またこのポートは、Tomcatを終了するときにも使うそうですので、 おそらく正常に動いている場合は、オープンするはずのもの ではないか、と思います。 もっとも、8007はあくまでデフォルト値で、server.xmlの 設定の仕方如何で変更できるようですが。 ということで コンソールで PoolTcpConnectorのログが確認できないなら、 Tomcatが起動の途中で死んでしまっていると考えてよいのでは? と思います。 (死因は何でしょうか? 思い当たるフシはないでしょうか?) すくなくとも、Apacheとの連携の場合はそう言えると思いますし、 IISでも、おそらくこの当たりの動作は変わらないと思います。 ちなみに、 Apacheとの連携はWin98SE上でやってみましたが、ナンにも考えずに、 ただインストールして起動しただけでも動作しました。 (もちろん、再起動後も動作しました) こういう事例を聞くと、Apacheの方が相性がいいような気がしますし、 Apacheとの連携の方がよくあるパターンですので、 万一のトラブルにも、対応の見通しがよくなると思いますが、 詳しい情報は残念ながら、もっていません。

emoemo
質問者

お礼

他のサイトを調べていましたら、設定が抜けているのを発見しました。 iis_redirect.regを編集して"log_level"="error"と変更する事に より解決する事が出来ました。大変参考になりました。有難うございました。

emoemo
質問者

補足

misokaさん、回答有難うございました。 No.3のQ2を確認したところ、PoolTcpConnectorの8007ポートログは 出ていました。 また、No.2の回答に対する補足に書き込みましたが、 http://localhost:8080/examples/servlets/ は正常に表示されました。 原因は、サーバー名を間違って指定していました。 という事は、IISとTomcatの連携に失敗しているという事ですよね? 何か解決策をご存知でしょうか? 良ければ教えて頂くと助かります。 宜しくお願いします。

その他の回答 (3)

  • misoka
  • ベストアンサー率35% (56/160)
回答No.3

基本的な確認事項なので恐縮ですが、 startup.bat実行時のコンソールに、  ContextManager: Adding context Ctx( /examples ) というログは出ているでしょうか? また、PoolTcpConnectorが8007ポート(だったかな?) を開いている、と同じログに出ているでしょうか? それから、  %TOMCAT_HOME%\webapps\examples\servlets\index.html は、ちゃんと存在しているでしょうか? また、 URLを http://localhost/examples/servlets/index.html と (index.htmlを)補って書いてみるとどうでしょうか? IIS-Tomcatのことについて詳しいわけではないので、 よく分からないのですが、 arataさんの実験からは、Tomcatの起動に失敗したという ケースの他に、IISとの連携にコケている、というケースも 考えられるような気がします (IISと連携させる設定によって、Tomcatが80や8080ポートを開かない場合。 IIS+Tomcatで404エラーだということは、そういうことだと思います)。 そうなると、原因がIIS側や連携部分にある可能性も 考えられそうです。

emoemo
質問者

補足

misokaさん、回答有難うございました。 早速、ご指摘通り確認してみました。 <確認事項> Q1:startup.bat実行時のコンソールに   ContextManager: Adding context Ctx( /examples )   というログは出ているのか? Q2:PoolTcpConnectorが8007ポートを開いていると同じログに出るのか? Q3:x:\webapps\examples\servlets\index.htmlは存在するのか? Q4:URLを http://localhost/examples/servlets/index.htmlと対象ファイルを   補って見るとどうなるか? <確認結果> A1:コンソールからきちんと確認できました。 A2:ログの場所が分からなかった為、確認出来ませんでした。 A3:index.htmlファイルは上記のQ3に示されたパスに存在していました。 A4:404「ページが見つかりません」エラーが発生して、表示出来ませんでした。 以上のような結果になってしまいました。 私が行ったインストールの方法が誤っているのでしょうか? また、実際運営するWebサーバーのOSがWindowsNTServer4.0である為、 WebサーバーにIIS4.0を選択したのですが Apache(Win版) の方がTomcatと相性が いいのでしょうか? お手数をお掛けしますが、教えてください。

  • arata
  • ベストアンサー率49% (139/279)
回答No.2

IISではなく、Windows2000でApache+Tomcatで動かしているので、自信はないのですが。 startup.batで起動されているのですね? IIS経由でなく、TOMCATで、直接 http://localhost:8080/examples/servlets/ のページを見た場合は表示できますか? 表示できなければ、tomcatの起動に失敗しています。 表示できれば、IISとの連携に失敗しています。 また、tomcat、IISの順に起動した場合、状況は変わりますか? この場合、tomcatをサービス化すると直るかもしれません。サービス化については、検索エンジンで探すといっぱいでてきますので、それを参照してください。(一応紹介しておきます。) サービス化した場合で、JDK1.3以降を使用していると、ログオフでTomcatが停止してしまうバグが発生します。JDK1.31であれば、wrapper.propertiesのwrapper.cmd_line で、javaに渡すオプションに-Xrsを追加すると、これを回避できます。(記述する位置を間違えるとエラーになって起動しなくなるので注意して下さい)

参考URL:
http://www5b.biglobe.ne.jp/~y-tomy/tomcat/fig_include.html#tom_service
emoemo
質問者

お礼

書き込みが遅くなってしまいまして、申し訳ありません。 回答有難うございました。 早速、arateさんがおっしゃっている様に、http://localhost:8080/examples/servlets/へアクセスしたところ 「サーバーが見つかりません」というエラーが発生し、期待したページを 表示する事が出来ませんでした。この原因は、Tomcatの起動に失敗している との事ですが、どのような対処を行えば正常にTomcatを起動する事が出来る ようでしょうか?

emoemo
質問者

補足

申し訳ありません。 昨日の書き込みで http://localhost:8080/examples/servlets/ が表示出来ませんでしたと書きましたが、URLのサーバー名を間違って指定 していました。正しくサーバー名を指定すると正常に表示されました。 しかしながら、http://localhost/examples/servlets/ と(8080部分を削除) 指定すると404「ページが見つかりません」のエラーが発生します。 この現象は、TomcatとIISの連携に失敗しているとの事ですが、IIS側のどの 部分を再設定すると解消されるのでしょうか?

  • naoisan
  • ベストアンサー率66% (2/3)
回答No.1

サーバーが立ち上がってないから、ページが表示されないのでは? と思います。 自動起動するのなら、コントロールパネルのサービスから 設定できる様な気もします。 NTサーバーって使ったことがないから、間違ってるかもしれないですけど

emoemo
質問者

補足

PC再起動後、IISはサービス開始しており、またTomcatは /bin/startup.bat を実行しております。  この状況でサンプルの http://localhost/examples/servlets/ にアクセス すると404のエラー「ページが見つかりません」が発生します(上記質問のエラー メッセージ「ファイルが見つかりません」は誤りでした。すみません)。 どこを再設定すれば、404エラーが発生せずにアクセスできるのでしょうか?

関連するQ&A

  • サーブレットが実行できない

    似たような質問が何件かあるのですがそちらを読んでも解決できないので、質問させてください。 java servlet初心者なのですが、 http://www.hellohiro.com/servlet.htm のサイトをもとにサーブレット環境を自分のパソコンで作ろうとしています。 とりあえず ・Tomcat5.5.23をダウンロード ・http://localhost:8080でページが表示されることを確認 ・HelloWorldServlet.classを作る。 まで正常にできました。 その後、 [Tomcatのフォルダ]\webapps\examples\WEB-INF\classes にHelloWorldServlet.classをコピーし、 http://localhost:8080/examples/servlet/HelloWorldServlet  を実行したところ 404エラーが発生しました。 もともとwebappsファイル下にexamplesというファイルがなかったのですが、これは正常なのでしょうか? jsp-examplesファイルとservlets-examplesファイルがあったのでその中の \WEB-INF\classes下にHelloWorldServlet.classを入れてみたり、 webapps下に\examples\WEB-INF\classesを作って、その中にそのclassファイルを入れてみたりといろいろやってみたのですが、 まったくエラーは変わりません。 何が悪いのかわからないのですが、 何かアドバイスをいただけないでしょうか? お願いします。

    • ベストアンサー
    • Java
  • servletのコンパイルエラーについて CLASS_PATH Tomcat 5.5.11

    Tomcat 5.5.11にてservlets-examplesのサンプルプログラムHelloWorld .javaをコンパイルすると以下のエラーが出ます。 Tomcatは正常に動作していますし、通常のjavaプログラムもコンパイルできます。 HelloWorld.java:3: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloWorld.java:4: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; CLASS_PATH などの設定はいろいろなサイトやここの過去の質問を見たとおりにしましたがなんともなりません。 現在は以下のようになっております。 CLASS_PATH .;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.5 PATH C:\Program Files\Java\jdk1.5.0_04\bin JAVA_HOME C:\Program Files\Java\jdk1.5.0_04 もうどうしたらいいのかわかりません。 助言のほうよろしくお願いします。

    • ベストアンサー
    • Java
  • 自分で作成したservletを起動すると画面が真っ白になる

    tomcat-5.0.28からApache Tomcat/5.5.17へとアップグレードしましたが jsp-examplesやservlets-examplesは問題無く表示して実行できるのですが 自分が作成したservletを表示することができません。 こちらは、実際見ることができ実行もできました。 http://192.168.X.XXX/jsp-examples/ http://192.168.X.XXX/servlets-examples/index.html 自分が作成したservlet(MySQL接続有り)を起動すると画面が真っ白になります。 MYSQLへの接続が上手く出来ないためエラーになっているのでしょうか? 因みに画面に文字を表示する単純なものはちゃんと動きます。 http://192.168.X.XXX/test/Data_Kensaku.html 【localhost.2006-07-10.log内容】 2006/07/10 14:42:00 org.apache.catalina.core.ApplicationContext log 情報: ContextListener: contextInitialized() 2006/07/10 14:42:00 org.apache.catalina.core.ApplicationContext log 情報: SessionListener: contextInitialized() 2006/07/10 14:42:00 org.apache.catalina.core.ApplicationContext log 情報: ContextListener: contextInitialized() 2006/07/10 14:42:00 org.apache.catalina.core.ApplicationContext log 情報: SessionListener: contextInitialized() 宜しくお願いします。 Linux EP4.0 java version 1.5.0_07 jakarta-tomcat-5.5.17 httpd-2.0.55 mod_jk2.so mysql-5.0.15

    • ベストアンサー
    • Java
  • isapi_redirect.dllのダウンロード

    TomcatとIISの連携をさせたいと思っています。 連携にはISAPIコネクタ(isapi_redirect.dll)が必要ということを調べ、下記サイトからダウンロードできると書かれていましたが場所がよくわかりませんでした。 http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.3/bin/win32/i386/ 以前にも同様の質問があったようですが、その時に回答されていたページは既にアクセスできませんでした。 ISAPIコネクタ(isapi_redirect.dll)のダウンロード場所をご存知のかたがおりましたら教えてください。

    • ベストアンサー
    • Java
  • IISとTomcatを協調させるisapi_redirect.dllはどこで配布されてる?

    IISとTomcatを協調させるにはTomcatのウェブサイトよりisapi_redirect.dll.zipを/win32/i386フォルダよりダウンロードしろと書かれていますが、Apache Tomcatのウェブサイトの構成が変更されたのかダウンロード先が分かりません。 http://jakarta.apache.org/builds/tomcat/release/v3.1/bin/win32/i386/ にisapi_redirect.dll.zipがあったと思われるのですが、現在のダウンロード先が分かる方いらっしゃいませんか?

    • ベストアンサー
    • Java
  • サーブレットの実行について

    本を読んでjavaの勉強をしているのですが、本が 古いせいか、サーブレットの実行がうまくいきません。 いろいろ検索し下記サイトを参考にして、 http://www.hellohiro.com/servlet.htm まずTomcat(apache-tomcat-4.1.36)をダウンロードし、 下記のように環境変数を設定しました。 JAVA_HOME-- C:\j2sdk1.4.2_16 CLASSPATH-- .;%JAVA_HOME%lib\tools.jar PATH -- C:\j2sdk1.4.2_16\bin そしてファイルをコンパイルし、本のとおりに Tomcat下にYJKSample\06\web-INF\classesとフォルダを作成、 コンパイルしたクラスファイルをclasses内に置き、 http://localhost:8080/YJKSample/06/servlet/Sample1 と指定してみましたがうまくいきません。 ところがサイトのとおりにTomcat\webapps\examples\WEB-INF\classes 下にクラスファイルを置いて、 http://localhost:8080/examples/servlet/Sample1 と指定するとうまくいきました。 本を読み進めるにあたって、やり方がかなり違ってくるため できれば本のとおりにやりたいのですが、うまくいく方法は ないでしょうか? 何がいけないのかわからず頭を痛めています。 どなたかお知恵をいただけると幸甚です。 ちなみにOSのバージョンはWindows XP HomeEditionです。 どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • TOMCAT5

    こんにちは。 またまた質問させていただきます。 TOMCAT5の設定(?)なのですが、うまく行きません! TOMCAT5にもとから入っているservlets-examplesフォルダのサーブレットにはアクセスできます。 でもそこに自分が作ったファイルを置き同じようにアクセスすると404エラーが出ます。 また、新たに自分でアプリケーションフォルダ(?)を作成すると今度はそのフォルダ自体にアクセスできません(404エラー)。 ネットにあったTomcatの設定通りにやっているつもりなのですが…。 これが足りないんじゃない?って言うのがあったら教えて下さい。お願いします。

    • ベストアンサー
    • Java
  • 全然分かりません・・

    J2SEとtomcat5.0をインストールし、C:\j2sdk1.4.2_11とC:\Tomcat5としてインストールしました。 環境変数は変数名/変数値 CATALINA_HOME/C:\Tomcat5 CLASSPATH/.;%JAVA_HOME%\lib\tools.jar;C:\Tomcat5\common\lib\servlet-api.jar JAVA_HOME/C:\j2sdk1.4.2_11 PATH/%JAVA_HOME%\bin と設定しました。 普通にJAVAなども使えてtomcatも起動できるのですが、 http://www.hellohiro.com/servlet.htmで、HelloWorldServlet.javaをDL、コンパイルしclassを作って、C:\Tomcat5\webapps\servlets-examples\WEB-INF\classesなどに置いたのですが、 http://localhost:8080/examples/servlet/HelloWorldServletを実行しても HTTPステータス 404 - /examples/servlet/HelloWorldServletのエラーとなってしまいます。 色々なサイトを回って試したのですが、http://f44.aaa.livedoor.jp/~takamura/www/tomcat.htmlのサイトを参考に、 http://localhost:8080/のTomcat Administrationからログインして説明通りにやろうとしたら、CATALINA_HOMEの間違ったうちにやってしまったのかわかりませんが、コンテキストは既に存在しています、となってしまったりしました。 そのへんはやる必要なかったのかもしれませんが、tomcat5.0の場合は、 C:\Tomcat5\conf\Catalina\localhostに、C:\Tomcat5\webapps\の中に作成した自分で決めた名前のxmlを作成したりするらしいのですが、わかりやすく解説してあるサイトはありますでしょうか・・? tomcatを起動している最中に、http://localhost:8080/に続くアドレス で自分で用意したclassとxmlから、一番簡単なサーブレットを動かしてみたいです。よろしくお願いします。

  • IISとTomcatの連携がうまくいきません。

    お世話になります。 以下のURL等を参考にしてIISとTomcatの連携をしています。 http://stacktrace.jp/java/iis6.0-tomcat4.1.30.html http://d.hatena.ne.jp/pomo123/20080312/1205238173 ブラウザでサンプルページを表示しようとしましたが表示できませんでした。 http://localhost/examples/index.jsp 行った手順を箇条書きで申し訳ありませんが書かせていただきます。 ----------------------------------------------------------------------------- 1.SDK(Java)をインストール  j2sdk-1_4_2_04-windows-i586-p.exe 2.環境変数(JAVA_HOME)を追加 3.Tomcatをインストール  jakarta-tomcat-4.1.30.exe 4.TomcatのBinフォルダにコピー(install4iis.js, isapi_redirector2.dll)  jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip 5.TomcatのConfフォルダにコピー(workers2.properties.sample) 6.workers2.propertiesに名前を変更 7.workers2.propertiesを修正 [変更前]  group=lb   ↓ [変更後]  #group=lb 8.install4iis.jsを修正 [変更前]  _DEFAULT_SERVER_NAME = "Default Web Site";             ↓ [変更後]  _DEFAULT_SERVER_NAME = "既定の Web サイト"; 9.コマンドプロンプトでinstall4iis.jsを実行  >cscript install4iis.js 10.server.xmlを修正 [変更前]  <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"   port="8080"   minProcessors="5" maxProcessors="75"   enableLookups="true" redirectPort="8443"   acceptCount="100" debug="0" connectionTimeout="20000"   useURIValidationHack="false" disableUploadTimeout="true" />             ↓ [変更後] <!--  <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"   port="8080"   minProcessors="5" maxProcessors="75"   enableLookups="true" redirectPort="8443"   acceptCount="100" debug="0" connectionTimeout="20000"   useURIValidationHack="false" disableUploadTimeout="true" /> --> 11.Webサイトのプロパティで「ISAPIフィルタ」に追加 12.Tomcatを再起動 13.IISを再起動 14.サンプルページ(index.jsp)をexamplesフォルダに作成  <html><body>test <%= new java.util.Date() %></body></html> 環境は以下の通りです。 Windows XP Professional IIS 5.1 どうかアドバイスいただけませんでしょうか? 宜しくお願いします。

  • Servlet と データベースの超初級

    今、「やさしいJAVA活用編」という本でデーターベースの基本を勉強しています。 Tomcat3.2.3でローカルサーバーとしてServletでAccessで作った3列2行の表をデータベースとしてアクセスしようとしています。 設定の仕方は本に書いてありましたので、そのとおりにしました。(ODBCドライバーを設定して、Accessの表を関連付けて、、)。 うまく行かなかったので、使用するServletは雑誌に付いていた「Sampleファイル」を使用してみましたが、やはり駄目でした。 エラーとして以下の通りです。 (なにせ間違いが多い本で、ホームページの誤植表を見ても、間違っている場合があったりと少々、困惑している状態です。) Error: 500 Location: /YJKpractice/06/servlet/Sample1 Internal Servlet Error: java.lang.ClassCastException: Sample1 at org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:268) at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289) at org.apache.tomcat.core.Handler.service(Handler.java:254) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501) at java.lang.Thread.run(Thread.java:536)

    • ベストアンサー
    • Java

専門家に質問してみよう