我如何在Glassfish 3.1.2.2中注入一个EJB并使其可序列化?

时间:2014-08-20 09:39:39

标签: java glassfish ejb cdi

在Glassfish 3.1.2.2(build 5)中,当我使用@Inject而不是@EJB注入EJB时(我声明它是瞬态的),我无法序列化而不是bean。如果我改为@EJB它会起作用。

@Inject
transient BDEJB ejb;

我对WebSphere没有同样的问题。

对我来说,使用CDI注入替代品进行测试非常重要。

对我来说,确保会话范围bean可序列化以确保会话群集正常工作非常重要

package com.gneis.explains.ejb;

import java.util.List;

import javax.ejb.Stateless;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.gneis.explains.jpa.BaseDatos;

@Stateless
@Named
public class BDEJB {

    @PersistenceContext(unitName = "ORARQU")
    protected EntityManager em;

    public List<BaseDatos> getBasesDeDatos() {
        return em.createQuery("select bd from BaseDatos bd").getResultList();
    }

    public void add(BaseDatos bd) {
        em.persist(bd);
    }

    public void delete(BaseDatos bd) {
        em.remove(em.find(BaseDatos.class, bd.getId()));
    }

    public void update(BaseDatos bd) {
        em.merge(bd);
    }

}

0 个答案:

没有答案