Quando eu tento implementar um EJB que implemente uma interface, por exemplo:
@Stateless
public class MeuEJB implements IMeuEJB {
@PersistenceContext
private EntityManager em;
@Override
public void myMethod(){}
}
Ocorre a seguinte exception no deploy: Failed to start service Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type TesteJPA with qualifiers @Default at injection point [UnbackedAnnotatedField] @Inject com.davidlaurentino.nia.rest.HelloWorld.testeJPA at com.davidlaurentino.nia.rest.HelloWorld.testeJPA
Pesquisando na documentação da Oracle, entendi que para implementar uma interface eu preciso declará-la local, dessa forma: @Stateless @Local(IMeuEJB.class) public class MeuEJB implements IMeuEJB { ...
Não sei se entendi direito, mas tentei desta forma mas persiste o mesmo erro. Já tentei rodar com o Wildfly 9 e 10, sem sucesso. Se eu declaro o bean sem implementar nenhuma interface, ex:
@Stateless public class MeuEJB { }
Tudo funciona corretamente e consigo injetar o EJB. Isso pode ser um problema com o servidor, é alguma limitação do EJB que impede a implementação de interfaces ou estou fazendo algo errado? Agradeço qualquer ajuda.