Eclipse に JSF プロジェクトがあります。ファイルに変更を加えるたびに、.xhtml
Tomcat サーバーを停止してから、Tomcat サーバーを再起動する必要があります。変更を加えるたびにサーバーを再起動せずに、アプリケーションを継続的にビルドおよびテストできる他の方法はありますか?
2 に答える
JSF プロジェクトを開発する必要がある場合、少なくとも 2 つの変更を行う必要があります。
Tomcat の設定を次のように変更して、変更を自動的に公開するように Eclipse に指示します ([サーバー] ビューで Tomcat サーバーのエントリをダブルクリックすると、この画面が表示されます)。
つまり、デフォルトで「自動的に公開しない」に設定されています。
以下を に追加して、Web アプリケーションが現在開発モードであることを JSF に伝えます
web.xml
。<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>
これにより、Facelet キャッシュの無効化やリソースのリロードなど、開発者を容易にするために内部の仕組みが変更されます。これはパフォーマンスに影響するため、本番リリースをビルドするときはこれを削除することを忘れないでください。この設定は、JNDI によって設定することもできます。
別の方法は、ベアボーン Tomcat サーバーから、WildFly、Payara、Liberty などの通常の JEE サーバーに移行することです。それらの場合、上記の Eclipse 設定は不要になり、Bean メソッドをライブ編集することさえできます (Tomcat では、サーバー全体を再起動する必要があります)。
facelets.REFRESH_PERIOD: –
コンパイラがページの変更をチェックする間隔 – 開発中に役立つ低い値
<context-param>
<param-name>facelets.REFRESH_PERIOD</param-name>
<param-value>2</param-value>
</context-param>
(or)
<context-param>
<param-name>facelets.REFRESH_PERIOD</param-name>
<param-value>1</param-value>
</context-param>
- 上記のいずれかを設定できます。
で変わるweb.xml
-1
行った変更を有効にしたくない場合に設定します。(デフォルト値)- このリンクを確認してください。
編集: @BalusCが言ったように、上記は で機能しjsf 1.x
、jsf 2.X
公開設定を変更するjavax.faces.PROJECT_STAGE
にはweb.xml
.