首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用EJB的命名类的序列化,EJB包含实体管理器

引用EJB的命名类的序列化,EJB包含实体管理器
EN

Stack Overflow用户
提问于 2014-07-09 07:46:07
回答 1查看 380关注 0票数 1

我在Glassfish 3.1.2.2中使用Java 6。我在那里有一个带有无状态会话bean的EJB项目和一个带有命名的会话作用域类的WEB项目。

例如:

命名为

代码语言:javascript
复制
@Named
@SessionScoped
public class MyWebController implements Serializable {

@EJB
private MyBean myBean;
}

EJB类

代码语言:javascript
复制
@Stateless
public class MyBean {

@PersistenceContext
private EntityManager em;
}

该项目正在运行,但当我进行代码分析时,我会得到以下消息。

可序列化类中的非瞬态不可序列化实例字段

这个可序列化类定义了一个非原始实例字段,它既不是瞬态的、可序列化的,也不是java.lang.Object的,并且似乎没有实现Externalizable接口或readObject()和writeObject()方法。如果非序列化对象存储在此字段中,则该类的对象将无法正确地反序列化。

有人知道,我可以重构我的代码以避免这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2015-05-27 07:50:35

不是这些主题的专家,但是尝试一下这个:

1)确保您正在使用正确的@SessionScoped注释:

代码语言:javascript
复制
@Named
@javax.enterprise.context.SessionScoped
public class MyWebController implements Serializable {

  @EJB
  private MyBean myBean;

}

2)也尝试使用EJB序列化:

代码语言:javascript
复制
@Stateless
public class MyBean implements Serializable {
    ...
}

3)如果该溶液继续断裂。尝试使用@Inject而不是@EJB

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24648043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档