【发布时间】:2014-06-24 06:48:54
【问题描述】:
我正在构建一个 JSF 应用程序。 JSF 应用程序包含一些 CDI bean,它们保存会话数据。我想将此会话数据保存到文件中并在以后加载。
示例 1:
@SessionScoped
MyBean implements Serializable {
private String myValue;
//getter and setters
}
@RequestScoped
MyLoadingService {
@Inject
private MyBean myBean;
public void load(byte[] data){
MyBean newMyBean = (MyBean)org.apache.commons.lang3.SerializationUtils.deserialize(data);
//this doesn't work, because myBean is a proxy here...
//how can I achieve this to work?
myBean = newMyBean;
}
}
示例 2:
一个会话范围的 bean,它包含另一个应该加载的 bean。
@SessionScoped
AnotherBean implements Serializable {
private String otherValue;
//getter and setters
}
@SessionScoped
MyBean implements Serializable {
@Inject
AnotherBean anotherBean;
private String myValue;
//getter and setters
}
@RequestScoped
MyLoadingService {
@Inject
private MyBean myBean;
public void load(byte[] data){
MyBean newMyBean = (MyBean)org.apache.commons.lang3.SerializationUtils.deserialize(data);
//this doesn't work, because myBean is a proxy here...
//how can I achieve this to work?
myBean = newMyBean;
}
}
这可能吗?
【问题讨论】:
-
CDI 假设容器负责一切,包括序列化。
标签: java serialization cdi weld