0

多くの記事を見つけましたが@ViewScopedjava.io.NotSerializableException私の場合は何も役に立ちませんでした。おそらく、私はCDI@ViewScopedを使用しており、ほとんどの古い質問は@ManagedBean. 再生:

次の注釈が付いたプレゼンテーション モデルがあります。

@javax.inject.Named
@javax.faces.view.ViewScoped
public class WishPM implements Serializable{ 
[...]
}

デプロイはうまくいきます。また、この PM を使用してページにアクセスすると、すべて問題ありません。しかし、何かを変更した後にプロジェクトを再デプロイすると、次のようになります。

INFO:   Cannot serialize session attribute   com.sun.faces.application.view.activeViewContexts for session ad1a37e9cf5e1445cabc04a944e0
java.io.NotSerializableException: org.jboss.weld.bean.ManagedBean
[...]
WARNING:   Unable to restore sessions for web module [/wish] from previous deployment
java.lang.NullPointerException

@SessionScoped または @Requestscoped を使用すると、これは発生しません。他のスレッドから、web.xml で STATE_SAVING_METHOD をサーバーに設定するヒントがあります。クライアントに設定されていないため、デフォルトである必要があります。しかし、私はそれを設定しました:

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
</context-param>

しかし、それでも同じエラーです。誰かが私に何を試すのを手伝ってくれますか?

4

1 に答える 1

-1

使用する

@javax.enterprise.context.SessionScoped

挿入した

@javax.faces.view.ViewScoped

それは役立つはずです。また読む: CDIに関するいくつかの重要な情報

CDI 用の @ViewScope はありません。あることを意味しますが、私が知っているように、それは JEE7 + JSF 2.2 にあります。

于 2013-08-20T08:54:02.907 に答える