- - PR -
tomcat+apacheでユーザーディレクトリでのサーブレット実行
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-04-19 15:14
お世話になります。
Java初心者で基本的な質問で申し訳ありません。 現在、JDK5.0及びtomcat5.5.7、jakarta-tomcat-connectors-1.2.8はインストール済で正常に動作しております。 apacheドキュメントルートでもservlet-example/では正常に動作確認しております。 今回ユーザーディレクトリーでもサーブレットを動作させようと思い、 以下のファイルを編集しました。 mod_jk.confに kMount /admin ajp13 JkMount /admin/* ajp13 JkMount /examples ajp13 JkMount /examples/* ajp13" JkMount /home/*/public_html/WEB-INF/* ajp13 JkMount /home/*/public_html/*.jsp ajp13 <Location "/WEB-INF/"> AllowOverride None deny from all </Location> またhttpd.confに下記の ############JAVA####################### LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLevel /info JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" JkMount /servlets-examples/* ajp13 JkMount /jsp-examples/* ajp13 include /usr/local/tomcat/conf/mod_jk.conf ###################################### としてtomcat,apacheの順に再起動をしました。 しかし、apacheドキュメントルートではサーブレット、jspともに 正常にどうさしますが、 xxxx.com/~user/WEB-INF/以下のサーブレットは動作しません。 と言いますかページが存在しませんとなります。 ただ、ユーザーディレクトリでもjspは正常に動作します。 申し訳ございませんが、ご教授の程お願い申し上げます。 |
|
投稿日時: 2005-04-19 15:27
まず、Apacheを連携させずにTomcatに直接アクセスするのであれば動くのでしょうか。
「WEB-INF以下のサーブレットが動作しない」と書かれているのを見ると、何か勘違いされて いるように思えるのですが、どのようなURLで呼び出しているのでしょうか。少なくとも WEB-INF以下のファイルは直接外部から呼び出すことができないのですが。 |
|
投稿日時: 2005-04-19 16:30
uk様有難うございます。
記述で意味が不明な点がございましたらお許し下さい。 まず、apacheのドキュメントルート http://www.xxx.net/servlet-example/でのサンプルの動作は正常に動作します。 次に/usr/local/tomcat/webapps/servlet-example以下のファイルを home/user1/public_html/WEB-INF/以下にコピーすると Jkmountに指定してある http://www.xxx.net/~user1/WEB-INF/servlet/サンプルサーブレット でエラーが表示してしまいます。 apacheと連携しない時でもhttp://www.xxx.net:8080ポートでは動作しました。 また、以前に作成した血圧測定値を表で出力するサーブレットも /usr/local/tomcat/webapps/servlet-example/classes/以下に配置すると http://www.xxx.net/servlet-example/サーブレット名で実行できます。 同じファイルを/home/user1/public_html/WEB-INF/classes/以下に配置すると しかし、http://www.xxx.net/~WEB-INF/サーブレット名では実行できません。 tomcatのドキュメントルートへの配置では動作しますが、ユーザーディレクトリー では動作しません。 ユーザーディレクトリーへ配置したものを実行するのに何か他に設定が必要なので しょうか。 宜しくお願い申し上げます。 |
|
投稿日時: 2005-04-19 17:13
既に指摘されていますが、WEB-INF 以下のリソースに直接アクセスすることはできません。
「基本的に」サーブレットは web.xml にて呼び出すパスを指定しないと起動できません。 クラスをコピーするだけで起動できたのは直にクラスを検索して起動するServletServlet が登録されていたからではないでしょうか。これはちょっとしたテスト用に利用するもので本格的な開発や運用には適しません。 まず、Apache との連携以前のような気がするので Tomcat 単体でちゃんとサーブレットが動作するか確認してみましょう。 [ メッセージ編集済み 編集者: インギ 編集日時 2005-04-19 17:16 ] |
1
