2
respostas

CDI com EJB

Boa Tarde gente! Estou com uma aplicação desenvolvida com o uso de EJB + JPA, que estou migrando do servidor JBOSS 4 para o WebSphere 9 é após fechar a primeira versão de minha aplicação no WebSphere foi pedido para acrescentar o CDI. Tendo ciência das vantagens do CDI estou acrescentando-o em minha aplicação e me deparei com o seguinte problema: Minha aplicação é um EAR na qual possui 2 jar's que contém os EJB's da minha aplicação e estou querendo que um EJB no primeiro JAR receba a injeção de outro EJB no segundo JAR com o uso da anotação @Inject. O EJB do segundo jar tem declarado as interfaces local e remota. Quando gero o EAR e mando para o WebSphere realizar o deploy recebo uma Exception informando que as dependências não foram resolvidas

com.ibm.ws.cdi.CDIRuntimeException: com.ibm.ws.cdi.CDIDeploymentRuntimeException: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type ...Remote with qualifiers @Default

O que não entendo é o porque dessa exception sendo que trata-se de injetar um EJB em outro.

2 respostas

Opa, olha, talvez tenhamos que olhar certinho na spec, mas acho que não rola essa injeção. São dois contextos diferentes e o CDI não consegue puxar a implementação que ta no outro projeto do seu ear.

Olá Alberto, Não entendi o porque de ser 2 contextos. Aproveitando fiz alguns testes eu consegui realizar a injeção com o CDI. Mas assim me deixou uma duvida referente ao EJB pois quando faço o uso da interface Local ou Remota recebo a exception que postei no inicio. Agora utilizando uma terceira interface que é pai das interfaces local e remota a injeção funcionou. Seria certo fazer isso?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software