私のアプリケーションサーバーはWebSphereApplicationServerV8です。@EJBアノテーションを使用してEJB(EJB 3.0)を注入したセッションスコープのマネージドBeanがあります。EJBはステートレスです。
@ManagedBean
@SessionScoped
public class MyBean extends BaseBackingBean implements
Serializable {
@EJB
private IDetails custInfo;
セッションデータを分析していて、NotSerializableExceptionに気づきました
java.io.NotSerializableException: com.ejb.EJSLocal0SLDetailsImpl_081f812d at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1537) at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1502) at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1420) at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at
ここで、EJBを一時的なものとしてマークしようとしましたが、NotSerializableException例外をスローせずに正常に動作します。
@EJB
private transient IDetails custInfo;
これは正しい実装ですか、それとも代替ソリューションになる可能性がありますか?
EJBはインスタンス変数であり、JSFマネージドBeanで一時的なものとしてマークする必要がありますか?EJBを一時的なものとしてマークする必要がないと述べられている場合。では、何が間違っている可能性がありますか?