Bom dia !
Estou começando utilizar EJB 3.1 e estou tendo problemas com classes que herdam da mesma classe
import java.lang.reflect.ParameterizedType;
import javax.ejb.EJB;
import javax.ejb.Stateless;
public abstract class Service<DAO, Entidade>
{
@EJB
private DAOFactory daoFactory;
@SuppressWarnings("unchecked")
public DAO getDAO()
{
return (DAO) daoFactory.getDAO((Class<Entidade>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1]);
}
}
import java.util.List;
import javax.ejb.Stateless;
@Stateless
public class PermissaoService extends Service<PermissaoDAO, Permissao>
{
public List<Permissao> findByMenu()
{
return getDAO().findByMenu();
}
}
import java.util.List;
public class LoginService extends Service<UsuarioDAO, Usuario>
{
}
O meu problema e que nao consigo injetar minha classe direta so consigo se eu criar uma interface para cada classe
Ex:
@ManagedBean(name = "permissaoBean")
@RequestScoped
public class PermissaoBean
{
@EJB()
private PermissaoService service;
@EJB
private LoginService service1;
}
Ocorre o seguinte erro
javax.servlet.ServletException: Não é possível criar instância para·a classe