6

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

<application>
    <state-manager>com.ibm.faces.application.DevelopmentStateManager</state-manager>
    <variable-resolver>com.ibm.faces.portlet.PortletVariableResolver</variable-resolver>
</application>

そして、不平を言います:Type API variable-resolver is deprecated after JSF 1.1. 代わりに el-resolver を使用してください。

残念ながら、使用する el-resolver の IBM ページで回答が見つかりませんでした。

編集:

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

=> リゾルバー: com.sun.faces.el.FacesCompositeELResolver@696e696e

faces-config へのエントリの追加

<el-resolver>com.sun.faces.el.FacesCompositeELResolver</el-resolver>

variable-resolver を削除してもしなくても、次のようになります。

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 ...

4

2 に答える 2

1

PMRに対するIBMの対応:

Q-警告を無視した場合の結果はどうなりますか?

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

Q-生成されたfaces-config.xmlがまだ非推奨のメソッドを使用しているのはなぜですか?

回答-ポートレット変数を解決するために変数リゾルバーを使用しています。これはJSF1.2でもうまく機能します。

Q-ポートレット用のel-resolverはありますか、またはありますか?

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

于 2011-12-05T19:36:23.280 に答える
0

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

JSF 1.2 で導入された「既知のバグ」(私は常にそのフレーズが好きでした) は、FaceletsRendererJSF コンポーネントを非同期的にレンダリングすることを妨げるクラスです (JSF のすべての非同期性は、レンダリングに使用できる機能的なものではなく、 偽の を使用するためです)。 そのためにはJEE6に適したJSF 2.1が必要です。それ以外の場合は、彼/彼女のコメントで指摘されているように、まったく別のソリューションが必要になります。貴組織のご多幸をお祈り申し上げます。FacesContext@D1e

于 2011-11-05T15:39:19.867 に答える