- ベストアンサー
TOMCATでのサーブレット環境構築
初心者です。 Tomcat4.1を使ってサーブレットを動かしたいと思います。 manage/installを使ってWebアプリをインストールするところまではわかりました。 ディレクトリ[c:\java\test\]の配下に [WEB-INF\classes\]というディレクトリを掘って そこにtest.javaとそれをコンパイルしたtest.classがあります。 この状態で http://localhost:8080/manager/install?path=/test&war=file:c:/java/test といれ、testというwebアプリをインストールしました。 listでも確認し、登録されていました。 しかし http://localhost:8080/test/servlet/test とやっても動作しません。 HTTP 404エラーがでます。 (description The requested resource (/test/servlet/test) is not available.) 何が足らないのでしょうか?ご指示をお願いします。 できればわかりやすく解説してあるサイトとかを教えていただければありがたいです。 ちなみにサンプルではいってたexamplesのサーブレットは動作します。 環境はWindows2000です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
WEB-INFの下にweb.xmlがないためですね。 旧バージョンではconfフォルダのweb.xmlで デフォルトで特に気にしなくても動いていた ようですが、セキュリティの観点から現在は その部分がコメントアウトされているみたいですね。 なのでとりあえず 「Servletを組んでみたい」 「Servletのプログラムを学んでみたい」 というのであれば、confフォルダのweb.xmlの <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> がコメントアウトされていると思うので、コメントアウト をはずしてください。ただ、あまりお勧めはしません^^; ちゃんとWEB-INFの下にweb.xmlを作るのであれば 参考サイトを見ながら・・・・ <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>test</servlet-name> <servlet-class>test</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/servlet/test</url-pattern> </servlet-mapping> </web-app> のような感じでweb.xmlを作ればとりあえずは 動くと思います。 ちなみに当方はちゃんと確認をとっていないので、 自身がなかったり^^; では、がんばってください
その他の回答 (3)
- pentaro_2000
- ベストアンサー率23% (29/123)
web.xmlをNo.3さんの言われていた <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> で設定してみてください。 サーブレットの他の設定はなくても動くようになります。 他の部分はコメントアウトしておいてください。
- pentaro_2000
- ベストアンサー率23% (29/123)
こことか、こっからリンクしているところなんかはどうでしょう。
- pentaro_2000
- ベストアンサー率23% (29/123)
WEB-INF/の中にweb.xmlファイルはありますか? なかったらexample/WEB-INF/web.xmlを参考にして作ってください。
補足
web.xmlを書いて、置いてみたのですが動いていません。 作り方の参考になるサイトはないですか?
補足
動作しました。 ありがとうございます。 ですが、マシンを再起動したところ、動作しなくなりました。 manager/listで確認してみたところ、ステイタスがstopedになっていました。 manager/stert?path=/... で動かそうと試みましたが、動きません。どうしてでしょうか?