3.8. Seam と増分ホットデプロイメント
展開したディレクトリとして Seam アプリケーションをデプロイする場合、開発段階で増分ホットデプロイメントに対するサポートが含まれます。次の行を
components.xml に追加して Seam と Facelets でデバッグモードを有効にします。
<core:init debug="true">
<core:init debug="true">
警告
ホットデプロイメントスキャナーがそのサーバープロファイルに対して有効になって以内場合、Facelet のホットデプロイメントは機能しません。
これで Web アプリケーションを完全に再起動する必要なく次のファイルが再デプロイできます。
- Facelets のすべてのページ
- すべての
pages.xmlファイル
ただし、いずれかの Java コードを変更したい場合はアプリケーションを完全に再起動する必要があります。JBoss ではトップレベルのデプロイメント記述子を修正することでこれを行えます。EAR デプロイメントでは
application.xml、WAR デプロイメントでは web.xml です。
Seam は高速の編集 / コンパイル / テストのサイクルを目的とした JavaBean コンポーネントの増分再デプロイメントをサポートしています。この機能を使用するには、JavaBean コンポーネントを
WEB-INF/dev ディレクトリにデプロイする必要があります。これで、JavaBean コンポーネントは WAR あるいは EAR クラスローダの代わりに特別な Seam クラスローダによってロードされます。
この機能には以下のような制限があります。
- コンポーネントは JavaBean コンポーネントでなければなりません。 EJB3 Bean コンポーネントは使用できません (この制約は修正中です)。
- エンティティはホットデプロイされることはありません。
components.xmlでデプロイされたコンポーネントはホットデプロイできない場合があります。- ホットデプロイ可能なコンポーネントは、
WEB-INF/devの外部にデプロイされたクラスからは見えません。 - Seam デバッグモードを有効にして
jboss-seam-debug.jarをWEB-INF/libに配置する必要があります。 web.xmlに Seam フィルタをインストールしなければなりません。- システムに負荷がかかりデバッグが有効な場合は、エラーが表示されることがあります。
seam-gen で作成した WAR プロジェクトでは、
src/hot ソースディレクトリにあるクラスに対してはそのまま増分ホットデプロイメントが使用可能です。 ただし、 seam-gen は EAR プロジェクトの増分ホットデプロイには対応していません。