11

アプリケーションをデプロイする際にいくつかの問題が発生しました。

環境: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/" />

そしてエラーが発生しました

ホストappBase内の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のテキストを変更しても、フロントエンドには影響しません。「再デプロイ」ボタンは役に立ちません。

先ほど述べたように、managerはアプリケーションファイルをwebappsディレクトリにコピーするだけで、構成ファイルには変更を加えません。

必要なのは、ファイルシステム内の任意のディレクトリにアプリケーションをデプロイできることです(実際にはそうなります/home/krasilich/java/)。

そして、java.devのようなカスタムホストでこれを実行できれば素晴らしいと思います。答えが必要です。コンテキスト$CATALINA_HOME/conf/Catalina/java.dev/siloc.xmlが機能しないのはなぜですか。一貫性を保つために何をすればよいですか。

ありがとう。

4

1 に答える 1

18

私はあなたの問題を再現することができました。

との組み合わせをいじくり回した後、私が提案できる2つの回避策がありappBaseますdocBase。2つは一緒に動作しないように見えます。

オプション1-appBaseを削除します

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を 推測し、appBaseで指定され$CATALINA_HOME/conf/Catalina/java.dev/siloc.xmlたwebappを探します。siloc

appBaseこれにより、 inserver.xmlをwebappの親フォルダーに変更した場合でも、java.dev:8080 /siloc/が機能しますsiloc

なぜmanager機能するのか、同じ理由で-manager.xmlにdocBaseがありません

docBaseの他の組み合わせを試していますが、指定した値は

警告:ホストappBase内のdocBase ...が指定されており、無視されます

したがって、私の結論は、docBaseを削除することです。親フォルダーへのフルパスがserver.xmlにハードコードされるため、これはお勧めできません。

于 2010-10-13T08:35:12.730 に答える