1
我使用Java EE 6和Glassfish 3.1.2.2。我有一個有無狀態會話bean的EJB項目和一個帶有命名會話範圍類的WEB項目。使用引用EJB的命名類的序列化,其中包含實體管理器
例如:
命名類
@Named
@SessionScoped
public class MyWebController implements Serializable {
@EJB
private MyBean myBean;
}
EJB類
@Stateless
public class MyBean {
@PersistenceContext
private EntityManager em;
}
該項目正在運行,但是當我做代碼分析,我得到以下信息。
非瞬態在序列化類不可序列實例字段
這Serializable類定義了一個非原始實例字段既不是瞬時的,序列化的,或java.lang.Object中,並且不似乎實現Externalizable接口或readObject()和writeObject()方法。如果在此字段中存儲不可序列化的對象,則此類的對象將不會正確反序列化。
有人知不知道,我誰可以重構我的代碼,以避免這種情況?
的問題是無狀態的bean不能是序列化的,因爲EntityManager的,這是不序列化。 – user3819332