Estou desenvolvendo uma aplicação JSF + JPA com Hibernate com uma tela login que ao ser acessada com sucesso vai para uma tela com alguns links para as entidades. No link “Pais” ao ser clicado levanta a exceção:
java.lang.IllegalArgumentException
neste link “Pais” chama o formulário de cadastro e a lista na mesma página.
O problema é no formulário de cadastro. Pois quando é comentada a chamada do formulário a lista é exibida, mas quando se comenta a chamada da lista a exceção é levantada.
página Pais.xhtml
<ui:composition template="/WEB-INF/template/template.xhtml"
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">
<ui:define name="conteudo">
<h1>Pais</h1>
<h:form>
<ui:include src="formulario-novos-pais.xhtml"/>
<ui:include src="lista-de-pais.xhtml"/>
</h:form>
</ui:define>
</ui:composition>
formulário de cadastro Pais:
<ui:composition 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">
<h:inputHidden value="#{paisBean.pais.codPais}"/>
<h:panelGrid columns="3">
<h:outputLabel value="Nome do Pai: " for="nomePai"/>
<h:inputText id="nomePai" required="true"
requiredMessage="O nome do pai e obrigatorio"
value="#{paisBean.pais.nomePai}">
</h:inputText>
<h:message for="nomePai"/>
<h:outputLabel value="Nome da Mae: " for="nomeMae"/>
<h:inputText id="nomeMae" required="true"
requiredMessage="O nome da mae e obrigatorio"
value="#{paisBean.pais.nomeMae}">
</h:inputText>
<h:message for="nomeMae"/>
<h:outputLabel value="Telefone: " for="telefone"/>
<h:inputText id="telefone" required="true"
requiredMessage="O numero do telefone e obrigatorio"
value="#{paisBean.pais.telefone}">
</h:inputText >
<h:message for="telefone"/>
<h:outputLabel value="Endereco:" for="endereco"/>
<h:selectOneMenu id="endereco"
value="#{paisBean.codEndereco}">
<f:selectItems value="#{enderecoBean.endereco}" var="endereco"
itemLabel="#{endereco.bairro}" itemValue="#{endereco.codEndereco}"/>
</h:selectOneMenu>
<h:message for="endereco"/>
<h:commandButton value="Cadastrar">
<f:ajax event="click" execute="@form"
listener="#{paisBean.adiciona}" render="@all"/>
</h:commandButton>
</h:panelGrid>
</ui:composition>