1
resposta

O Eclipse insiste em usar o @Produces do "javax.ws.rs.Produces" ao inés do "javax.enterprise.inject.Produces"

import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
#import javax.ws.rs.Produces;
import javax.faces.context.FacesContext;

@RequestScoped
@Produces
public class FaceContextProducer {

    public FacesContext getFaceContext() {
        return FacesContext.getCurrentInstance();
    }


}
1 resposta

Olá, Marcio, tudo bem contigo?

Peço desculpas pela demora no retorno a sua mensagem.

Uma possível solução para seu problema é utilizar o nome completo da anotação que você deseja utilizar. Ao invés de importar apenas javax.enterprise.inject.Produces, você pode importar a anotação completa com o pacote, assim:

import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
import javax.faces.context.FacesContext;

@RequestScoped
@javax.enterprise.inject.Produces
public class FaceContextProducer {

    public FacesContext getFaceContext() {
        return FacesContext.getCurrentInstance();
    }
}

Dessa forma, você estará utilizando a anotação correta e evitando conflitos com outras bibliotecas.

Todavia, vale ressaltar que como você postou sua pergunta há algum tempo é possível que a constante evolução da tecnologia impacte na resolução da sua dúvida. Sendo assim, caso queira se aprofundar neste tema e com conteúdos atualizados, recomendo os materiais abaixo:

Espero ter ajudado.

Abraços e bons estudos!