Olá, entendo que meu código está idêntico ao da video-aula, porém está dando nullPointerException no método listar() do dao. Estou disponibilizando o erro e o código. Obrigado
Erro URL: Error processing request Context Path:/casadocodigo Servlet Path:/livros/form.xhtml Path Info:null Query String:null Stack Trace javax.servlet.ServletException javax.faces.webapp.FacesServlet.service(FacesServlet.java:671) io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284) io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263) io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174) io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) java.lang.Thread.run(Thread.java:748)
Código AutorDao: package casadocodigo.dao;
import java.util.List;
import javax.persistence.EntityManager; import javax.persistence.PersistenceContext;
import casadocodigo.model.Autor;
public class AutorDao {
@PersistenceContext private EntityManager manager;
public List listar(){ return manager.createQuery( "select a from Autor a", Autor.class).getResultList(); } } Código AdminLivrosBean package casadocodigo.beans;
import java.util.ArrayList; import java.util.List;
import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.inject.Named; import javax.transaction.Transactional;
import casadocodigo.dao.AutorDao; import casadocodigo.dao.LivroDao; import casadocodigo.model.Autor; import casadocodigo.model.Livro;
@Named @RequestScoped public class AdminLivrosBean {
private Livro livro = new Livro(); private AutorDao autorDao;
@Inject private LivroDao dao;
@Inject public List getAutores(){ return autorDao.listar(); }
private List autoresId = new ArrayList();
public List getAutoresId() { return autoresId; }
public void setAutoresId(List autoresId) { this.autoresId = autoresId; }
@Transactional public void salvar(){ for (Integer autorId: autoresId) { livro.getAutores().add(new Autor(autorId)); } dao.salvar(livro); System.out.println("Livro Cadastrado: " + livro); System.out.println("Livro Salvo com sucesso!!!"); }
public Livro getLivro() { return livro; }
public void setLivro(Livro livro) { this.livro = livro; }
}