0
//exemple01
@ManagedBean(name = "mb")
@ViewScoped
public class ExempleMB implements Serializable {

@ManagedProperty(value = "#{serviceBO}")
private ServiceBO serviceBO;

 @PostConstruct
 public void init{
 list= serviceBO.list();
 }

public void query(){
  serviceBO.query(parameters); 
 }
}

示例 01:因此返回错误 javax.faces.FacesException: java.io.NotSerializableException: 因为他无法序列化,并且由 spring 管理。

//exemple02
@ManagedBean(name = "mb")
@ViewScoped
public class ExempleMB implements Serializable {

@ManagedProperty(value = "#{serviceBO}")
private transient ServicoBO serviceBO;

 @PostConstruct
 public void init{
 list= serviceBO.list();
 }

public void query(){
  servicoBO.query(paramestros); 
 }
}

例02:他使查询初始化,但是这个空搜索服务的方法,因为它必须被标记为瞬态,我该如何解决这个问题。

4

1 回答 1

0

Spring 服务不可序列化。您可以改为注入完全可序列化的代理,这样@ViewScopedbean 序列化就会完美无缺。

如果您使用注释,只需将以下内容添加到您的类定义中:

@Service
@Scope(value = "singleton", proxyMode = ScopedProxyMode.INTERFACES)
public YourService { ... }

如果您使用的是 xml,请执行以下操作:

<bean id="yourService" class="your.package.YourServiceImpl" scope="singleton">
    <aop:scoped-proxy proxy-target-class="false"/>
    ...
</bean>
于 2013-05-08T21:46:42.360 回答