2

JSF 1.2 プロジェクトを JSF 2.0 に移行し、JSP ページでコマンド ボタンを使用しています。コマンド ボタンをクリックすると、外部システムから応答が返され、応答が表示されます。

このコマンド ボタンをクリックすると、以下の execption で空白のページが表示されます

デバッグ中に、成功の応答が得られていることがわかりましたが、状態ビュー ID が失われたため、元のページを見つけることができませんでした

[8/13/13 11:01:30:538 CDT] 000000e0 webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[Faces Servlet]: java.lang.NullPointerException: viewId parameter for  save view state is null
    at org.ajax4jsf.application.AjaxStateHolder.saveState(AjaxStateHolder.java:155)
    at org.ajax4jsf.application.AjaxStateManager.saveStateInSession(AjaxStateManager.java:523)
    at org.ajax4jsf.application.AjaxStateManager.buildViewState(AjaxStateManager.java:503)
    at org.ajax4jsf.application.AjaxStateManager.saveView(AjaxStateManager.java:462)
    at org.apache.myfaces.shared_impl.view.JspViewDeclarationLanguageBase.renderView(JspViewDeclarationLanguageBase.java:206)
    at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:263)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
    at org.apache.myfaces.tomahawk.application.ResourceViewHandlerWrapper.renderView(ResourceViewHandlerWrapper.java:169)
    at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
    at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)

ビューステートを保存するために web.xml に必要な特定の構成はありますか?

4

1 に答える 1

4

スタックトレースに Ajax4jsf 1.x 固有のorg.ajax4jsf.*クラスが存在するということは、JSF 1.x にまだ Ajax4jsf を使用していることを示しています。

これはJSF 2.x と互換性がありません。内のすべての Ajax4jsf 1.x 関連の JAR ファイルと登録を削除する必要がありますweb.xml。代わりにJSF 独自の<f:ajax>機能を使用するか、JSF 2.0 と互換性のある新しいバージョンの<a4j:xxx>タグをバンドルする RichFaces 4.x にアップグレードする必要があります。これには、JSP ではなく Facelets が必要であることに注意してください。したがって、JSP から Facelets にも移行する必要があります。

以下も参照してください。

于 2013-08-13T16:34:45.503 に答える