• ベストアンサー

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を再起動後にもう一度上記のページを表示すると「ファイルが見つかりません」のエラーが発生してしまいます。 他に設定しなければならない箇所があるのでしょうか? 教えてください。 宜しくお願いします。

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

  • ベストアンサー
  • 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エラーが発生せずにアクセスできるのでしょうか?