2
respostas

Aula 2 Atividade 4 não funciona e apresenta erro

Fiz o codigo exatamente como mostra a aula e apresenta o seguinte erro:

Context Path:/casadocodigo Servlet Path:/livros/form.xhtml Path Info:null Query String:null Stack Trace javax.servlet.ServletException: /livros/form.xhtml @27,94 value="#{adminLivrosBean.autoresId}": The class 'br.com.casadocodigo.loja.beans.AdminLivrosBean$Proxy$_$$_WeldSubclass' does not have the property 'autoresId'. javax.faces.webapp.FacesServlet.service(FacesServlet.java:671) io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)

Codigo da Classe AdminLivrosBean

package br.com.casadocodigo.loja.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 br.com.casadocodigo.loja.daos.AutorDao; import br.com.casadocodigo.loja.daos.LivroDao; import br.com.casadocodigo.loja.models.Autor; import br.com.casadocodigo.loja.models.Livro;

//CDI

@Named @RequestScoped public class AdminLivrosBean {

private Livro livro = new Livro();

@Inject private LivroDao dao;

@Inject private AutorDao autorDao;

private List autoresId = new ArrayList<>();

@Transactional public void salvar(){ for (Integer autorId : autoresId) { livro.getAutores().add(new Autor(autorId)); } dao.salvar(livro); System.out.println("Livro Cadastrado: " + livro);

}

public List getAutores() { return autorDao.listar(); } public Livro getLivro() { return livro; }

public void setLivro(Livro livro) { this.livro = livro; } }

2 respostas
codigo do form

Oi Alexandre,

Pode ser que na sua classe AdminLivrosBean esteja faltando os métodos get e set do atributo autoresId.

Dá uma conferida.