アプリケーションは実際に再デプロイされますが、作業ディレクトリはデフォルトでは実際には削除されません(JBossがコンパイルされたjspを保存する場所です)。したがって、再デプロイ後、以前のコンパイル済みjspクラスが保持される場合があります。
JBoss 5.1(JBoss 4.xで利用可能かどうかは100%わかりません)では、JBossがアンデプロイされたときにアプリケーションの作業ディレクトリを強制的に削除するオプションがあります-再デプロイされます。このオプションは次の場所にあります:$ JBOSS_HOME / server / yourInstance / deployers / jbossweb.deployer / META-INF / war-deployers-jboss-beans.xml、このファイルでプロパティを探します:
<property name="deleteWorkDirOnContextDestroy">true</property>
デフォルトではfalseに設定されているため、trueに設定します。ホットデプロイの成功は他のクラスへの依存関係などに依存する場合がありますが、再デプロイ時に問題を解決するのに役立つ場合があります。一方、アプリケーションをホットデプロイまたは再デプロイする場合は、moveコマンド(mv)を使用しますが、コピーは使用しないでください。 (cp)1つ、mvはアトミックですがcpではないため(cpを使用すると、ファイルのコピー中にホットデプロイメントスキャナーをアクティブ化できます)。
ホット再デプロイのもう1つの解決策は、手動で削除することです(開発環境でのみ推奨)。次の一連のコマンドを使用します(既にデプロイディレクトリにいることを念頭に置いてください)。
rm yourapp.war; rm -rf ../work/jboss.web/localhost/yourapp;mv <newappversiondir>/yourapp.war .
ただし、本番環境や重要な環境でのホットデプロイメントは強くお勧めしません。