0
respostas

Problema com JSF com CDI

java.lang.IllegalStateException: Singleton not set for STATIC_INSTANCE => []
    org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider$RegistrySingleton.get(RegistrySingletonProvider.java:28)
    org.jboss.weld.Container.instance(Container.java:65)
    org.jboss.weld.jsf.ConversationAwareViewHandler.getConversationContext(ConversationAwareViewHandler.java:81)
    org.jboss.weld.jsf.ConversationAwareViewHandler.getActionURL(ConversationAwareViewHandler.java:110)
    com.sun.faces.application.view.MultiViewHandler.getRedirectURL(MultiViewHandler.java:484)
    javax.faces.application.ViewHandlerWrapper.getRedirectURL(ViewHandlerWrapper.java:250)
    org.jboss.weld.jsf.ConversationAwareViewHandler.getRedirectURL(ConversationAwareViewHandler.java:142)
    com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:208)
    com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:183)
    br.com.caelum.livraria.util.Autorizador.afterPhase(Autorizador.java:36)
    com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107)
    com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:123)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Depois que passei a usar CDI deu este problema acima. Minha classe com CDI abaixo:

package br.com.caelum.livraria.bean;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.inject.Named;

import br.com.caelum.livraria.dao.DAO;
import br.com.caelum.livraria.modelo.Autor;

//@ManagedBean -  JSF administrar o Bean
@Named
@ViewScoped
public class AutorBean implements Serializable {

    private Autor autor = new Autor();

    private Integer autorId;



    public Integer getAutorId() {
        return autorId;
    }

    public void setAutorId(Integer autorId) {
        this.autorId = autorId;
    }

    public void carregarAutorPelaId() {
        this.autor = new DAO<Autor>(Autor.class).buscaPorId(autorId);
    }

    public String gravar() {
        System.out.println("Gravando autor " + this.autor.getNome());

        if(this.autor.getId() == null) {
            new DAO<Autor>(Autor.class).adiciona(this.autor);
        } else {
            new DAO<Autor>(Autor.class).atualiza(this.autor);
        }

        this.autor = new Autor();

        return "livro?faces-redirect=true";
    }

    public void remover(Autor autor) {
        System.out.println("Removendo autor " + autor.getNome());
        new DAO<Autor>(Autor.class).remove(autor);
    }

    public List<Autor> getAutores() {
        return new DAO<Autor>(Autor.class).listaTodos();
    }

    public Autor getAutor() {
        return autor;
    }

    public void setAutor(Autor autor) {
        this.autor = autor;
    }
}

Alguém pode me ajudar?