- - PR -
サーブレットの起動方法(TOMCAT 4.0.4)
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2002-10-24 18:43
初歩的な質問で申し訳ありませんが、参考書読みながらでも
うまくいかないのでよろしくお願い致します。 用語もおかしいかもしれませんです。 (ルート)webapps配下にwebアプリケーションの入ったフォルダを配置して それを起動したいのですが、この時、このフォルダの名称に関わりなく 決まったURLを打ち込めば起動できるようにしたいのです。 具体的には、 \Apache Tomcat 4.0\webapps\SAMPLE\index.htm を、 http://localhost/test/ で起動したいのです。 web.xmlに<servlet>の要素を記述すればいいのでしょうけど、 これがうまくいきません。 よろしくお願いします! | ||||
|
投稿日時: 2002-10-24 22:17
こんばんは。
なるほど。 これをするには確かに、web.xmlを設定しなければなりませんね。 参考書ではweb.xmlの詳しい設定方法は書かれていないと思うので、 私が重宝しているサイトをご紹介しましょう。 web.xml要素リファレンスというページでweb.xmlの細かい設定方法が書かれています。 是非一度ごらんになってみてください。 web.xml 要素レファレンス http://www.sk-jp.com/java/servlet/webxml.html | ||||
|
投稿日時: 2002-10-24 22:47
すご〜く、自信がないのですが、 これって、tomcat の server.xml の <context> で指定するじゃなかったんでしたっけ。 勘違いだったらごめんなさい。 | ||||
|
投稿日時: 2002-10-24 23:04
しまった〜! きたさんが起動したかったのは、index.htmだったんですね! それだったら、Apache Tomcat 4.0/conf の server.xml を設定した方がいいですね。 たぶん、 <Context path="/test" docBase="SAMPLE" debug="0" reloadable="true"> </Context> と設定すれば、http://localhost/test/ で、起動できるようになると思います。 yuさん、気付かしてくれてありがとうございます。 | ||||
|
投稿日時: 2002-10-25 09:49
返信ありがとうございます。
> アレクさん じ、実はここも読んでいるのですが分からなかったりしてます…。あはは…。 > yuさん server.xmlに記述する方法だと、webアプリを受け取った ユーザが書き換えなきゃいけないので、なるべくやりたくないんです。 (この認識は何かとてつもない勘違いをしているかもしれませんが。 web.xmlみたいに、WEB-INFに放り込んで置けば読み取ってくれるのでしょうか) それに、質問が不十分でした。すみません。 ここでSAMPLEといっているフォルダは、名前が定まっていないのです。 SAMPLEというwebアプリの入ったフォルダの名前を、SAMPLE2としても、 http://localhost/test/で起動できるようにしたいのです。 もっと具体的にいうと、SAMPLE.warファイルをwebapps直下に配置するときに、 SAMPLE2.warと名前を変えて配置しても、http://localhost/test/で 起動できるような方法はないものかと苦戦しています。 | ||||
|
投稿日時: 2002-10-25 10:41
<blockquote>
SAMPLEというwebアプリの入ったフォルダの名前を、SAMPLE2としても、 http://localhost/test/で起動できるようにしたいのです。 </blockquote> server.xmlを編集せずに、このようなコンテキストを作ることは標準の方法ではできません。 まったく無理ではないかもしれませんが。。。きっと相当苦労しますよ。 最初から「test.war」として配布できない理由はなんでしょうか? | ||||
|
投稿日時: 2002-10-25 10:44
>webアプリを受け取った ユーザが書き換えなきゃいけないので、なるべくやりたくないんです。
アプリケーションデプロイヤ・管理者ですよね。 http://jdc.sun.co.jp/j2ee/tutorial/ J2EEチュートリアルに開発時のロールについての説明があります。 server.xmlに設定するContextですが、これはアプリケーションのコンテキストルートですよね。この設定はサーバの管理者が行うのが適当だと思いませんか? 例えば、すでに稼働中のサーバでhttp://hostname/test/には別のリソースが存在することもありえると思います。それをアプリケーション側で設定するのは良くないと思います。 (例えは悪いかもしれませんが、デスクトップアプリでもユーザがインストール場所を選べなかったりすると嫌ですよね) どこにインストールするかを決めるということはあくまで使う側に主導権があるということで、サーバ管理者の役目です。逆にこのぐらいも設定できない(したくない)管理者が運営しているサーバは怖いと思います。 | ||||
|
投稿日時: 2002-10-25 11:31
>t-wataさん
> server.xmlを編集せずに、このようなコンテキストを作ることは標準の方法ではできません。 > まったく無理ではないかもしれませんが。。。きっと相当苦労しますよ。 ! ガーン。 標準外の方法に手をつける気はないです…。 できないんじゃ、そりゃうまくいくはずないですね。 > 最初から「test.war」として配布できない理由はなんでしょうか? 受け取った方がファイル名を勝手に変えてしまわない保証がないと思ったもので。 この業界に夏に入ったばかりで、誰に何をどこまで委ねていいのか、 その辺りの知識が真っ白なんです。 >ひろさん > server.xmlに設定するContextですが、これはアプリケーションのコンテキストルートですよね。この設定はサーバの管理者が行うのが適当だと思いませんか? > 例えば、すでに稼働中のサーバでhttp://hostname/test/には別のリソースが存在することもありえると思います。それをアプリケーション側で設定するのは良くないと思います。 > (例えは悪いかもしれませんが、デスクトップアプリでもユーザがインストール場所を選べなかったりすると嫌ですよね) > > どこにインストールするかを決めるということはあくまで使う側に主導権があるということで、サーバ管理者の役目です。逆にこのぐらいも設定できない(したくない)管理者が運営しているサーバは怖いと思います。 そうですね。納得です。 リソースが被る可能性のことも忘れてました。 となると、配布後のことはやはり使う側の問題ということになるんですね。 この際なのでついでに質問したいのですが、配布するwarには絶対にweb.xmlを パッケージングしておくべきなのでしょうか。 warをルートに配置させるよう指示すれば、http://hostname/test/で起動するので、 web.xmlもserver.xmlも新たに記述を加える必要がありませんよね。 そうなると、配布するwarにweb.xmlを入れておいても意味がないですし。 でもそういうのはJ2EEとして、というか標準的なWebアプリとして どうなんだろう?と疑問を持ちました。 web.xmlにもserver.xmlにも何も記述しないのは標準じゃないよ! とか怒られそうで(誰に?)。 なんだか毎回、的外れな質問しているような気がしてキドキ投稿です。 ちなみにJ2EEチュートリアルはこれから読みます。6Mもあるーうわー。 | ||||
