2016-03-22 12 views
6

WebアプリケーションをJSFマネージドBeanからCDIマネージドBeanを使用するように変換する予定です。JSFマネージドBeanをCDIマネージドBeanに移行する

  1. 空のbeans.xmlファイルをWEB-INFに追加します。
  2. すべてのJSF @ManagedBeanをCDI @Namedアノテーションに置き換えます。
  3. すべてのJSFスコープ注釈をCDIまたはOmniFacesスコープ注釈で置き換えます。
  4. すべてのJSF @ManagedPropertyをCDI @Injectアノテーションに置き換えます。

これはすべて実行する必要がありますか?私が知っておく必要がある問題はありますか?

+0

回答は使用するサーバーによって異なります。例えば。 Tomcatでは、CDI自体もインストールする必要があります。 – BalusC

+0

私はTOMEEを使用しています。だから、CDIはすでに利用可能です。私はwebappのつかまえ方についてもっと心配しています。アプリのあらゆる側面をテストすることは難しいです。だから、もし知られていることが分かっていれば、気を付けることを知ってうれしい。 –

答えて

3

基本的には、Java EEサーバーを使用しているのであれば、実際に行う必要があります。 Tomcatの場合は、まずCDIを手動でインストールする必要があります。溶接やOpenWebBeans両方の手順についてHow to install CDI in Tomcat?

以下落とし穴が世話をする必要がブログで詳述されている:「正式に」OmniFaces 2.xの間

  • JSF 2.2、OmniFaces 2.0/2.1である必要があり技術的にはJSF 2.1との後方互換性があり、TomEEの場合はTomEE 1.xでJSF 2.1を使用する必要がありますが、OmniFaces 2.2は厳密なJSF 2.2依存関係(新しい<o:viewAction>タグによる)を持ち、TomEE 1.x MyFaces JSFの実装を2.2互換のバージョンにアップグレードすることなく、またはそれ自体をTomEE 7.xにアップグレードする必要はありません。 OmniFaces Compatibility Matrixも参照してください。

  • WARが提供するライブラリのCDIコンテキストが誤ってEAR全体として解釈されるため、通常はすべてのCDI機能が1つのWARでしか動作しません。これはCDI仕様の見落としであり、将来のCDIバージョンで修正される予定です。 OmniFaces Known Issues (CDI)も参照してください。

  • あなたが@FacesConverterまたは@FacesValidatorにOmniFaces-提供CDI注入サポートを使用したい、とあなたが作成しようとしているときに/ CDI 1.1互換beans.xml(ひいてはないCDI 1.0互換性のある1または空1)を使用し、 をbeans.xmlに明示的に設定していることを確認する必要があります。 @FacesConverter showcaseも参照してください。

  • @ManagedBean(eager=true)を交換する場合、標準のCDIにはこれに相当するものがないことに注意してください。 OmniFacesは目的のために@Eagerアノテーションを提供しています。

  • @ManagedPropertyを置き換え、それは@ManagedProperty経由だけで可能であったあなたは、一人で@Injectを経由して直接#{param.xxx}#{cookie.xxx}#{initParam.xxx}を注入することができないことに注意してください。 OmniFacesは、それぞれ@Param,@Cookieおよび@ContextParamを提供します。

+0

ありがとうございますBalusC。私は1 - 4を行い、いくつかのテストを行い、すべてが動作しているように見えます。それがシームレスであることに驚いた。サイドノート:私は最近、このアプリをWebsphere 8.1(myfaces2.0)からTOMEE 1.7(myfaces 2.1.17)に移行しました。それ以来、私たちは記憶上の問題を経験してきました。 TOMEEサーバーは、1週間の実行後、最大のヒープのためにハングアップしました。私はメモリダンプにたくさんのビュースコープのBeanがあることに気付きました。私はomnifacesのviewscopedがこの問題を解消するのに役立つことを望んでいます。 Websphereでこの問題がなぜ起こっていないのか分かりません。ああ、ポインタのおかげで。 –

関連する問題