2
respostas

ao clicar em 'SALVAR' na aplicação livraria temos o erro: Error Rendering View[/livros.xhtml]

Bom dia pessoal,

CURSO: EJB Aplicação: Livraria

Problema com o arquivo original livraria.zip do projeto do curso EJB, Este arquivo foi baixado na primeira aula no tópico preparando o ambiente.

Baixar projeto

No momento que vou cadastrar um livro clicando em salvar, o Jboss no meu caso(Wildfly14) apresenta no console a *seguinte mensagem: *

07:51:18,393 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (default task-1) Error Rendering View[/livros.xhtml]: java.lang.IllegalArgumentException: Tipo de conteúdo não reconhecido.

Mesmo assim ele persiste a informação ou seja salva normalmente e quando acesso a tela com a lista destes livros a informação que eu tinha persistido permanece lá.

O debug não apresenta nenhum problema nos métodos que são acionados pela ação do botão salvar.

Classe LivroBean método cadastrar.

public void cadastra() {
        Autor autor = this.autorDao.buscaPelaId(this.autorId);
        this.livro.setAutor(autor);
        this.livroDao.salva(livro);
        this.livro = new Livro();
    }

Pagina livros.xhtml - É aqui que acredito onde morar o problema, porém não estou conseguindo solucioná-lo.

<?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">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

<ui:composition template="_template.xhtml">
    <ui:define name="corpo">

        <h:form id="formLivro" prependId="false">
            <p:panelGrid columns="2">
                 <f:facet name="header">  
                    Cadastro de livros
                </f:facet>

                <p:outputLabel value="Título: " />
                <p:inputText id="titulo" value="#{livroBean.livro.titulo}"  required="true"/>

                <p:outputLabel value="Autor: " />
                <p:selectOneMenu  value="#{livroBean.autorId}"  effect="fade" >  
                    <f:selectItems value="#{livroBean.autores}" var="autor" 
                                    itemValue="#{autor.id}" itemLabel="#{autor.nome}" />  
                </p:selectOneMenu>  

                <f:facet name="footer">  
                    <p:commandButton value="Salvar" action="#{livroBean.cadastra}" 
                                        update="@form :tabelaLivros :mensagens" />
                </f:facet>
            </p:panelGrid>
        </h:form>

    <p:separator id="separator"/>

    <h3>Livros</h3>

    <h:form id="tabelaLivros">
        <p:dataTable var="livro" value="#{livroBean.livros}">

            <p:column headerText="Título">
                <h:outputText value="#{livro.titulo}" />
            </p:column>

            <p:column headerText="Autor">
                <h:outputText value="#{livro.autor.nome}" />
            </p:column>

        </p:dataTable>
    </h:form>
    </ui:define>
</ui:composition>

</html>

Alguém pode ter ideia do que seja?

2 respostas

Oi Wesley,

Tem mais informações nesse stack de erro? Alguma informação da sua view livros.xhtml está invalida, provavelmente alguma informação que está sendo repassada.

Otávio esse projeto é bem simples e inclusive é um projeto inicio, não tem nem persistência, tem como tu dar uma olhada pra mim por gentilieza, a view livros.xhtml encontra-se disponível no código acima porém eu recomendo baixar o projeto https://s3.amazonaws.com/caelum-online-public/ejb/livraria.zip que é do primeiro capítulo sem alterações e executar os passos acima. Obrigado.