gpt4 book ai didi

spring - ViewScoped Bean 导致 NotSerializableException

转载 作者:行者123 更新时间:2023-12-04 04:13:50 25 4
gpt4 key购买 nike

您好我正在使用 ViewScoped Bean 问题是当调用它时我得到 NotSerializableException。

这是我的托管 Bean 的代码:

@ManagedBean(name="demandesBean")
@ViewScoped
public class DemandesBean implements Serializable {
private static final long serialVersionUID = 1L;

@ManagedProperty(value="#{demandeService}")
private DemandeService demandeService; //A Spring Service

@ManagedProperty(value="#{loginBean}")
private LoginBean loginBean;

private DemandeVO newDemande;

@PostConstruct
public void initData() {
newDemande = new DemandeVO();
}

public void doAjouterDemande(ActionListener event) {
demandeService.createDemande(newDemande, loginBean.getUsername());
newDemande = new DemandeVO();
}

public List<DemandeVO> getListDemande() {
return demandeService.getAllDemandesByUser(loginBean.getUsername());
}

public DemandeService getDemandeService() {
return demandeService;
}

public void setDemandeService(DemandeService demandeService) {
this.demandeService = demandeService;
}

public LoginBean getLoginBean() {
return loginBean;
}

public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}

public DemandeVO getNewDemande() {
return newDemande;
}

public void setNewDemande(DemandeVO newDemande) {
this.newDemande = newDemande;
}
}

我收到以下异常:
GRAVE: Exiting serializeView - Could not serialize state: com.bull.congesJBPM.serviceImpl.DemandeServiceImpl
java.io.NotSerializableException: com.bull.congesJBPM.serviceImpl.DemandeServiceImpl

这个问题有什么解决办法吗??请帮忙 !

最佳答案

另一个问题是 MyFaces 默认情况下会序列化状态,即使状态保存在服务器上(默认)。这反过来要求 View 范围的支持 bean 是可序列化的。

这种方法的优点是历史就是真正的历史。当您返回到以前的 View 版本(使用后退按钮)时,您实际上获得了当时支持 bean 的确切版本。

缺点是它似乎破坏了服务的注入(inject)(与这个问题无关,是一个主要的性能损失)。注入(inject) EJB 服务时会出现完全相同的问题。

您可以在 web.xml 中添加一个上下文参数来禁用此行为:

<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
</context-param>

http://wiki.apache.org/myfaces/Performance

顺便说一句,Mojarra 也有类似的设置,但默认设置为 false。

关于spring - ViewScoped Bean 导致 NotSerializableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3851561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com