Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Target Unreachable, identifier resolved to null (CDI)

Estou criando um projeto com o CDI, JSF 2 e Primefaces 6.1. Subo a aplicação no Tomcat e a página é carregada, porém ao tentar submeter um form, ele aparece a mensagem "Target Unreachable, identifier 'clienteMB' resolved to null".

Coloquei um ponto de parada no init (anotado com o @PostConstruct), mas ele nem chega a passar ali.

Dei uma conferida em todas as configurações do CDI e estão aparentemente corretas. Comparei até com um outro projeto que estou desenvolvendo e que está funcionando, e as dependências estão iguais.

Assinatura do meu Bean:

@Named
@ViewScoped
public class ClienteMB implements Serializable {

web.xml

<listener>
        <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
    </listener>

    <!-- CDI -->
    <resource-env-ref>
        <resource-env-ref-name>BeanManager</resource-env-ref-name>
        <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
    </resource-env-ref>

Chamada no XHTML

<p:commandButton value="Gravar"
                                actionListener="#{clienteMB.gravar}" />
4 respostas

Adicionou o beans.xml?

Olá Alberto,

Sim, adicionei no WEB-INF. Segue o conteúdo:

<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
       version="1.2" bean-discovery-mode="all">
</beans>

Criei um novo projeto Maven com os mesmos arquivos do projeto que não estava funcionando e aí fez todas as chamadas aos Beans corretamente.

A única coisa que fiz de diferente do outro projeto é que precisei alterar as versões do Dynamic project para 3.1, JSF para 2.2 e Java para 1.8 (coisa que o outro também está com estas versões).

Outra coisa que ficou diferente é a estrutura dos diretórios, pois nesse novo ( e que funcionou ) está com a estrutura de webapp e não WEBContent.

Essas estruturas de diretórios tem alguma relação?

solução!

Fiz um novo teste, desta vez criando um projeto WEB Dynamic e depois convertendo ele para um projeto Maven. Desta vez funcionou corretamente.

Vou continuar fazendo alguns testes para entender o motivo.

Obrigado.

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