12

MyFacesを使用してJSFで開発作業を行っていますが、この警告が表示されました。

*******************************************************************
*** WARNING: Apache MyFaces-2 is running in DEVELOPMENT mode.   ***
***                                         ^^^^^^^^^^^         ***
*** Do NOT deploy to your live server(s) without changing this. ***
*** See Application#getProjectStage() for more information.     ***
*******************************************************************

開発モードと本番モードの違いは何ですか?セキュリティ上のリスクはありますか?パフォーマンスの向上だけですか?

4

1 に答える 1

17

セキュリティ上のリスクはありませんが、パフォーマンスに影響があります。プロジェクトステージが開発に設定されると、ログに記録されることが多くなり、キャッシュが少なくなります。

ロギングに関しては、コンポーネントの構築およびレンダリング方法に関する追加のデバッグ情報がログに記録されます。たとえば、<h:inputText>親がいない場合<h:form>、これはログに記録され、facesメッセージとして表示されます。どのコンポーネントにも表示されないキューに入れられたすべてのfacesメッセージ<h:message(s)>は、ページ下部の別のメッセージリストに、「表示されていない」メッセージを示すオレンジ色の警告フォントで表示されます。また、例外処理は異なります。MyFacesは<error-page>、コンポーネントツリーとスコープ変数に関する詳細を含む豊富なエラーページを表示する代わりに表示します。

キャッシュに関しては、Faceletキャッシュはより定期的に更新されます。したがって、Faceletファイルに変更を加えてF5キーを押すと、変更は「すぐに」反映されます。これは本番段階には当てはまりません。基本的にサーバー全体を再起動する必要があります。

また、jsf.jsJavaScriptファイルは縮小されていないバージョンとして表示されるため、WebブラウザーでのJSのデバッグが容易になります。実稼働段階では、代わりに縮小バージョンであるため、より小さく、より高速に提供できますが、完全に読み取ることはできません。

豊富なエラーページを期待して、Mojarraは非常によく似た動作をします。

于 2012-12-20T00:38:28.193 に答える