- ベストアンサー
ServletのWebアプリケーションの追加方法
- ServletのWebアプリケーションの追加方法について悩んでいます。
- 自分のホームに専用のディレクトリを作り、tomcatの設定を行いましたがうまく認識されません。
- 試しにファイルを置いてアクセスしてみたのですが、すべて404エラーが発生します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> JkMount /hoge/* ajp12 これはマウントと言ってコネクタに/hogeをマウントすると言うことです。 当然ながらこの設定は不可欠です。 これを行うことによりajp12コネクタで/hogeディレクトリへ対しての リクエストがとおります。 ですが、私の指摘したのはAliasです。 httpd.conf もしくは mod_jk.confへ以下の設定をすれば見れるはずです。 Alias /hoge/ "/$TOMCAT_HOME$/webapps/hoge/" #まず、Apacheに/hoge/*へ対してのリクエストを/$TOMCAT_HOME$/webapps/hoge/へAliasする。 JkMount /hoge/* ajp12 #/hoge/へのリクエストをajp12コネクタを通じて処理 Apacheのサンプルが見え、8080でTomcatのexamplesが見えるのであれば インストールと基本の設定は出来ていますので、この設定が出来ていないのが原因でしょう。
その他の回答 (2)
- covachan
- ベストアンサー率38% (46/120)
まず、tomcatのconfディレクトリにあるmod_jk-auto.confを見てみてください。 このファイルは、登録されているWebApplicationのためにTomcatが自動的に 作る設定ファイルです。 ご覧になるとわかると思うのですが、 Aliasが設定されていると思います。 つまり、WebApplicationへのAliasを設定するなどしてパスを通してあげないと そのファイルはTomcatは認識したとしてもApacheで認識できないのです。 exampleの場合、最初の起動時に認識されますのでアクセスはできます。 ですが、もしincludeファイルにmod_jk-auto.confでなく、自分で書いたものを 指定しているのであれば、後から追加したWebApplicationへのAliasは自動では設定されません。 ちなみに8080ポートで接続は確認しましたか?? 8080で見えて、80で見えなければ、それは完全にこの設定ができていないからです。 この場合httpd.confか、mod_jk.confでAliasを設定する必要があります。 httpd.conf、もしくはmod_jk.confの設定をもう一度見直してみてはどうでしょう??
お礼
conf/jk/mod_jk.conf というのがあったので、exampleなどの例にならって > JkMount /hoge/* ajp12 と指定を加えてみました。すると、80でも8080でも見えなかったものが、8080だけで見えるようになりました。ということは、Tomcatでは認識できているということですよね。自動的にApacheで認識されていないのが非常に気になるのですが、もう少しいじってみます。ありがとうございます。
- covachan
- ベストアンサー率38% (46/120)
まず、環境をしっかり書いておいてください。 http://localhost/examples/で見れるということはWebサーバーとの連携ですか? それとも、TOMCATのポートを80に指定したのですか? それと、もしWebサーバーを使用しているのならばそれは何ですか?? 404エラーはWebサーバーが吐き出すエラーです。 つまり、基本的に配置がうまくいってない、もしくはWebサーバーから見えない と考えるべきです。 Webサーバーの設定でちゃんとhogeが見えるようになっているか確認をしてください。 連携の概要はこうです。 Client > Webサーバー > もし、jspならば > tomcat ですので、Webサーバーがそのファイル自体を見れないと404エラーとなります。 設定について悩んでいるようでしたら、環境と手順を書いておいてください。
補足
大変失礼いたしました。 環境はLinux 2.4、Tomcat3.3.1(/usr/local/jakarta-tomcat3.3.1/)とApache1.3.20(/usr/local/apache/)にJ2SDK 1.3を連携させています。 Apacheのルートは/home/httpd/になっていて、exampleはtomcatの中(jakarta-tomcat3.31/webapps/example)にあり、Servlet関係の要求へ自動的にtomcatへ飛ぶようになっている・・・はずです(exampleは飛んでくれました)。 それが、tomcat側の conf/server.xml に新規で指定しても飛んでくれないのです・・・。
お礼
なるほど!Apache側アクセスからTomcatへの接続は、モジュールを入れておけば自動でされるのではないのですね。設定をしてみます。あとは、webアプリケーションの例の通りに、Servletを配置すれば良いんですね。色々とありがとうございました。