タイプAPI APIはJSF 1.1の後に非推奨です。代わりにel-resolverを使用する

最近、WebSphere Portal v6.1からv7.0にアップグレードしました。その過程で、JSF 1.2が利用可能になりました。 Rad 8で新しいポートレットプロジェクトを作成するとfaces-config.xmlが次のエントリで作成されます


    com.ibm.faces.application.DevelopmentStateManager
    com.ibm.faces.portlet.PortletVariableResolver

そして、それから、JSF 1.1の後にタイプAPI変数リゾルバは推奨されません。代わりにel-resolverを使用してください。

残念ながら、私はIBMのページで答えを見つけることができませんでした。

編集:

System.out.println("Resolver: " + PortalUtil.getFacesContext().getApplication().getELResolver());

=> Resolver: [email protected]

faces-configにエントリを追加する

com.sun.faces.el.FacesCompositeELResolver

変数リゾルバを削除してもしなくても、次のようになります。

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:270)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:358)
    ... 89 more

IBMがオープンしたPMR ...

6
追加された 著者 Brad,
RADからの警告メッセージ:javax.el.E​​LResolverクラスは、抽象クラスではなく、具体的でなければなりません。
追加された 著者 Stefan,
Springを使用し、org.springframework.web.jsf.DelegatingVariableResolverがあります。それはうまく動作します。おそらくこのリゾルバの依存関係を追加しようとしますか? のように置くorg.springframework.web.jsf.DelegatingVariableResolver
追加された 著者 JMelnik,

2 答え

PMRへのIBMの対応:

Q - 警告を無視するとどうなるでしょうか?

Ans - ユーザーは引き続き変数リゾルバを使用できますが、機能は影響を受けません。 [このタグは下位互換性のために維持されます]

Q - 生成されたfaces-config.xmlは引き続き廃止予定のメソッドを使用していますか?

Ans - 変数リゾルバを使用してポートレット変数を解決しています。これはJSF 1.2でもうまくいきます

Q - ポートレット用のel-resolverがあるか、存在しますか?

Ans - ポートレット用のel-resolverがあります。 JSFポートレット・ブリッジ2.0で提供され、WASのアップデートとして出荷されます。それは現在計画段階にあるので、私はあなたにこれが見つかる正確なバージョンを与えることはできません。

1
追加された

私はそれを言いたくはありませんが、非同期Webアプリケーションについて話しているなら、あなたは水中で死んでいます。

JSF 1.2では、JSFコンポーネントを非同期的にレンダリングできないようにする FaceletsRenderer クラスがJSF 1.2の「既知のバグ」を導入しました(JSFのすべての非同期性は、 FacesContext ;レンダリングに使用できる機能的なものではありません)。 JEE6に対応するJSF 2.1が必要です。そうしないと、コメントで @ D1e が指摘されているため、別のソリューションが必要になります。あなたの組織にとって最高の運があります。

0
追加された
私は、非同期Webアプリケーションがその質問にどのように関連しているのか、混乱しています。特にstacktraceには、リクエスト処理の前に実行される FacesServlet.init が含まれているためです。
追加された 著者 A.H.,
Faceletsをまったく使用していません。
追加された 著者 Stefan,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript