这是ManagedBean

@ManagedBean @ViewScoped public class DetailItem {
    private static final long serialVersionUID = -7647929779133437125L;
    @ManagedProperty(value = "#{itemServiceImpl}")
    private ItemService servItem;


这就是服务

@Service("itemServiceImpl") @Transactional(value = "transactionManagerLocal") public class ItemServiceImpl implements ItemService {
    private static final long serialVersionUID = 1L;
    @Autowired
    @Qualifier("itemDaoImpl")
    private ItemDAO dao;


但是当我尝试访问使用'DetailItem'的页面时,出现以下异常:

java.io.NotSerializableException: org.springframework.dao.support.PersistenceExceptionTranslationInterceptor    java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)   java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)


为了解决这个问题,我做了servItem瞬变,并从applicationContext获取它。但是我知道这不是正确的解决方案,我找不到其他解决方案。哪个是正确的方法?

我没有sessionscoped或requestscoped的例外。

最佳答案

听起来像Serialization of ManagedProperty这样的类似问题

ItemService是否实现Serializable,并且ItemServiceImpl的所有成员本身都可以序列化吗?

关于serialization - 带有ViewScoped和Spring服务的ManagedBean中的NotSerializableException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10296308/

10-10 11:52