Pessoal , li alguns artigos sobre EJB3 e pela especificação informa que deve trabalhar em qualquer c omponente que seja registrado com o JavaEE container
Sendo assim , deverá funcionar em uma servlet
No entanto estou há algumas horas tentando fazer funcionar em uma servlet, e nada.
Estou usando Jboss 4.2, sei que no Jboss temos que diponibilizar os componentes explicitamente na arvore jndi para que possamos usufruir a anotação @EJB.
Bem consegui acessar o meu EJB usando JSF, funcionou normalmente
@Local
public interface PerfilSessionFacade {
public void salvarPerfil ( Perfil perfil);
}
A implementação é essa
@Stateless
public class PerfilSessionFacadeImpl implements PerfilSessionFacade {
@PersistenceContext(unitName="pu_ejb_in_action_cap02_JPA")
private EntityManager manager;
@Override
public void salvarPerfil(Perfil perfil) {
manager.persist(perfil);
}
}
Este é o entity
@Entity
public class Perfil implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="perf_id")
private int id;
@Column(name="perf_de_perfil", length=50)
private String perfil;
Mas só lembro que no JSF está funcionando numa boa , mas no servlet está emperrando.
Da uma pesquisada aqui no fórum, isso já foi debatido, inclusive citando quais servidores de aplicação seguem a especificação para esse caso, ou seja, se vai injetar seu EJB na Servlet com a anotação em questão…