Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aula 4 erro de java.lang.ClassCastException

Caros amigos estou com um erro estranho meu código esta idêntico da vídeo aula mas gera um erro de java.util.ArrayList cannot be cast to javax.faces.model.SelectItem, abaixo esta meu Bean e meu xhtml

Bean package br.com.caelum.livraria.bean; import java.util.List; import javax.faces.bean.ManagedBean; import br.com.caelum.livraria.dao.DAO; import br.com.caelum.livraria.modelo.Autor; import br.com.caelum.livraria.modelo.Livro;

@ManagedBean public class LivroBean { private Livro livro = new Livro(); public Livro getLivro() { return livro; } public List getAutores(){ return new DAO(Autor.class).listaTodos(); }

public void gravar() { System.out.println("Gravando livro " + this.livro.getTitulo()); if (livro.getAutores().isEmpty()) { throw new RuntimeException("Livro deve ter pelo menos um Autor."); } new DAO(Livro.class).adiciona(this.livro); }

}

xhtml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Novo Livro

Dados do Livro

Dados do Autor


Erro

type Exception report

message java.util.ArrayList cannot be cast to javax.faces.model.SelectItem

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.util.ArrayList cannot be cast to javax.faces.model.SelectItem javax.faces.webapp.FacesServlet.service(FacesServlet.java:606) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause

java.lang.ClassCastException: java.util.ArrayList cannot be cast to javax.faces.model.SelectItem com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:189) com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:135) com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:761) com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:843) com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:297) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786) javax.faces.render.Renderer.encodeChildren(Renderer.java:168) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782) com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:437) com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs.

1 resposta
solução!

Consegui resolver o problema ao invés de utilizar o selectItems estava utilizando o selectItem.