4

展開後にアプリサーバーで web.xml (または実際には他のファイル) を変更することをお勧めしますか? すべてのアプリ サーバーが展開/ディレクトリ構造を公開していますか?

ローカルで変更を加え、war (または .ear など) を再構築し、アプリケーションを再デプロイすることをお勧めします。

4

1 に答える 1

3

最初の質問に関しては、リソースの種類によって異なります。クラスパスリソースの場合、アプリケーションサーバーのクラスロードメカニズムで優先度の高い任意のディレクトリ(たとえば、Tomcatを使用している場合は$ CATALINA_HOME / lib)のファイルをオーバーライドできます。web.xmlなどのxmlファイルの場合、パッケージ化されたファイルで絶対パスを使用して外部エンティティを宣言できますが、ファイルがターゲットサーバーに存在することを確認する必要があります。たとえば、パッケージ化されたweb.xmlは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document [
<!ENTITY webEntity SYSTEM 'C:\Temp\web.xml'>
]>
&webEntity;

したがって、web.xmlの実際のコンテンツは、ファイルC:\ Temp\web.xmlのコンテンツになります。

要するに、それを行う公式の方法はありませんが、トリックがあります。人々がしていることは、生産現場ごとにカスタムパッケージを作成することだと思います。戦争オーバーレイや分類子のように、Mavenでこれを自動化する方法は複数あります。ここに興味深いリンクがあります。

あなたの2番目の質問に関して、私はこの仮定に頼りません。Tomcatサーバーで展開されたリソースを変更するのは非常に簡単ですが、JBossASではそれほど単純ではありません。

于 2013-03-13T22:24:08.143 に答える