3

これは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の例外はありません。

4

1 に答える 1

1

ManagedPropertyのシリアル化のような同様の問題のように聞こえます

ItemServiceはSerializableを実装し、ItemServiceImplのすべてのメンバーはSerializableですか?

于 2012-07-19T10:36:25.433 に答える