4
respostas

Problema com migração projeto Maven

Eu fiz a migração do projeto para o Maven, porém os imports do Weld servlet e PhaseListener estao com problemas de canot be resolved:

The import javax.faces.view.ViewScoped cannot be resolved import javax.faces.view.ViewScoped;

Os imports abaixo estão com o mesmo problema:

import javax.inject.Inject;
import javax.inject.Named;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

Podem me ajudar?

4 respostas

André, adiciona no seu arquivo pom.xml as seguintes dependências:

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.2.2</version>
</dependency>

Testa e dá um retorno pra gente.

Abraço.

Olá, primeiramente obrigado pela ajuda Manoel!

Sumiram a maioria dos erros, ficou apenas o dos im:ports abaixo import javax.inject.Inject; import javax.inject.Named;

Oq estava acontecendo?

Obrigado mais uma vez!

Para o @Inject e o @Named são da especificação do CDI. Você precisa da biblioteca do Weld.

<!-- Weld -->
<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
</dependency>

Esses erros acontecem porque você não tem em seu projeto as bibliotecas necessárias para prover os recursos que você estava usando.

O Maven faz o download dessas bibliotecas pra você, evitando que você tenha que ir atrás de uma por uma e gerencie "na mão" suas libs. Daí, você só precisa especificar qual a biblioteca você quer que ele baixe, através do arquivo pom.xml.

Faz os testes e dá um retorno.

Abraço.

E aí, Andre, deu certo?