1

私が使用しているもの:

  • Tomcat 6.0.30

これが私のWebアプリケーションプロジェクトのcontext.xmlとweb.xmlの構造です。

  • META-INF
    • context.xml
  • WEB-INF
    • web.xml

アプリケーション用のWARファイルを生成すると、context.xmlが期待どおりにパッケージ化されます。WARファイルをTomcatwebappsフォルダーにコピーしてTomcatを起動すると、WARファイルが抽出され、context.xmlが\conf\Catalina\localhost\<webappname>.xml期待どおりにコピーされます。ただし、これ<webappname>.xmlはまだ存在しない場合にのみ機能します。したがって、最初に既存のを削除せずに、context.xmlを更新し、WARをパッケージ化し、再配置することはできません<webappname>.xml。ドキュメントを読んだことに基づいて、これが意図された機能であることを私は知っています。

私の質問は、それではどうすればよいですか?context.xmlを更新し、それらの更新をまったく新しいものであるかのように自動的にコピーするにはどうすればよいですか?<webappname>.xml各公開の前に削除する必要はありません。

多分私はこれについて間違った方法で行っているのですか?

4

1 に答える 1

5

最初にアプリケーションをアンデプロイすると、.xmlファイルがconf / Catalina/localhostフォルダーから削除されます。ただし、新しいwarを配置するだけでは、アンデプロイ(デプロイのみ)はトリガーされず、古いxmlファイルは置き換えられません。

次のいずれかの方法でアプリをアンデプロイできます。

  • webappsフォルダー内のwarファイルを削除します-tomcatはアプリをアンデプロイします(ホスト構成のserver.xmlでautoDeployがtrueに設定されている場合)
  • マネージャアプリケーションがインストールされている場合は、アプリケーションでdelete / remove / undeployコマンドを発行できます。または、新しいwarをアップロードするときに「undeploy」オプションが表示される場合があります(どちらであるかはわかりません)。
于 2012-04-19T23:40:42.900 に答える