Tomcatのカスタムホストにアプリケーションを展開します
質問
アプリケーションを展開するためにいくつかの問題がありました。
環境:Ubuntu 10.04、Tomcat 7.02(リポジトリからではなく、Tomcatサイトからアーカイブからインストール)、サーバーは実行され、IDEを使用しない手動で停止します。
最初にホストを作成しました $CATALINA_HOME/conf/server.xml
:
<Host name="java.dev"
appBase="/home/krasilich/java/"
autoDeploy="true" >
<Alias>www.java.dev</Alias>
</Host>
次に、コンテキストを作成します $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
:
<Context docBase="siloc/web/" />
エラーがありました
docbase/home/krasilich/java/siloc/web/ホストアプリの内部が指定されており、無視されます
ただし、Manager.xmlをコピーすると $CATALINA_HOME/conf/Catalina/java.dev/
マネージャーアプリを実行できます。マネージャーを介してアプリケーションを展開すると、すべてが順調に進んでいると言われていますが、Java.dev:8080/Siloc/に404が表示されます。
それはすべてカスタムホストです。
私はLocalHostのマネージャーを介してアプリケーションを展開しようとしましたが、それは機能します、私はlocalhost:8080/siloc/で私の「HelloWord」を見ることができます
ただし、index.jspのテキストを変更すると、フロントエンドでは影響を受けません。 「Redeploy」ボタンは私には役に立ちません。
マネージャーに言及したように、アプリケーションファイルをWebAppsディレクトリにコピーするだけで、構成ファイルに変更を加えないでください。
ファイルシステムの任意のディレクトリにアプリケーションを展開できることが必要です(実際には /home/krasilich/java/
).
そして、java.devのようなカスタムホストでこれを行うことができれば、答えが必要です。なぜコンテキストが $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
私のために働いていません、そして私はそれを一貫性にするために何をしますか?
ありがとう。
解決
私はあなたの問題を再現することができました。
2つの回避策があります。 appBase
と docBase
. 。 2つは一緒に動作しないようです。
オプション1-アプリベースを削除します
を削除します appBase
から server.xml
Webアプリへのフルパスを指定します docBase
の中に $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
私はあなたの価値があると思います /home/krasilich/java/siloc/web/siloc
.
注:親フォルダーまでのみ指定します /home/krasilich/java/siloc/web/
親フォルダのディレクトリリストが表示されます
オプション2- docbaseを削除します
の $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
を削除します docBase
と保管してください <Context/>
TomcatはWebApp名を導きます siloc
から $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
そして、それは名前が付けられたWebAppを探します siloc
AppBaseで。
これにより、java.dev:8080/siloc/が作業を行うこともできます。 appBase
の server.xml
WebAppの親フォルダーに siloc
.
理由に応じて manager
作品、同じ理由-Manager.xmlにはdocbaseがありません
私はdocbaseの他の組み合わせを試していますが、私が与える価値はあらゆるスロー
警告:docbase ...ホストAppbaseの内部が指定されており、無視されます
したがって、私の結論は、docbaseを削除することです。これは良いアイデアではありません - 親フォルダーへのフルパスはserver.xmlでハードコードされるためです。