Jsf 空无状态会话bean自重部署(还原会话)后从托管bean访问时,如何解决?
我管理过bean,例如:Jsf 空无状态会话bean自重部署(还原会话)后从托管bean访问时,如何解决?,jsf,serialization,glassfish,ejb,Jsf,Serialization,Glassfish,Ejb,我管理过bean,例如: @Named(value = "GrassBean") @SessionScoped public class GrassBean implements Serializable { @EJB private transient GrassLocal grass; public String getName() { return grass.getName(); /*Nu
@Named(value = "GrassBean")
@SessionScoped
public class GrassBean implements Serializable {
@EJB
private transient GrassLocal grass;
public String getName() {
return grass.getName(); /*NullPointerException*/
}
}
和无状态会话bean:
@Stateless
public class Grass implements GrassLocal {
@Override
public String getName() {
return "Name";
}
}
我对ejb属性使用transient,因为在NetBeans中自动重新部署后会话恢复失败。
在重新部署会话恢复后使用瞬态恢复有效,但ejb为空。如何解决
服务器:GlassFish 4.1IDE:NetBeans 8.0.2由
transient
标记的字段的可能重复项不可序列化,EJB不属于这些字段。EJB不必是瞬态的
,因为它们本身已经可以序列化,而不需要实现java.io.serializable
接口,因为它们使用可序列化代理。这个问题仍然存在于当前问题中看不到的其他地方,需要进一步调试和分析。您将哪个导入用于@SessionScoped
注释?我使用javax.enterprise.context.*EJB绝对不应该是瞬态的。删除该修改器。“Netbeans中自动部署后会话恢复失败”的问题需要以不同的方式解决。为了得到答案,您可能需要重新组织您的问题。可能重复的由transient
标记的字段不可序列化,而EJB不是其中的一部分。EJB不必是瞬态的
,因为它们本身已经可以序列化,而不需要实现java.io.serializable
接口,因为它们使用可序列化代理。这个问题仍然存在于当前问题中看不到的其他地方,需要进一步调试和分析。您将哪个导入用于@SessionScoped
注释?我使用javax.enterprise.context.*EJB绝对不应该是瞬态的。删除该修改器。“Netbeans中自动部署后会话恢复失败”的问题需要以不同的方式解决。为了得到答案,你可能需要重新组织你的问题。