Erro 500

4 respostas
faicoxim
type Exception report

message 

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

exception 

javax.servlet.ServletException: /caminhao/cadastro_caminhao.xhtml @39,95 value="#{CadastroCaminhaoControlador.caminhao.marca.id}": Target Unreachable, identifier 'CadastroCaminhaoControlador' resolved to null
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)


root cause 

javax.el.PropertyNotFoundException: /caminhao/cadastro_caminhao.xhtml @39,95 value="#{CadastroCaminhaoControlador.caminhao.marca.id}": Target Unreachable, identifier 'CadastroCaminhaoControlador' resolved to null
	com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
	org.primefaces.component.selectonemenu.SelectOneMenuRenderer.getValueType(SelectOneMenuRenderer.java:335)
	org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:62)
	org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:53)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
	com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
	com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:60)
	org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:48)
	org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:184)
	org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:107)
	org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:55)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:60)
	org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:48)
	org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:51)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
	com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
	com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	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)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.19 logs.

Me ajudem com este erro, quando clico em cadastro_caminhao.xhtml ele me retorna esse erro

4 Respostas

wbdsjunior

o nome do ManagedBean (CadastroCaminhaoControlador) está correto?

mostre-nos seu código.

faicoxim
package br.com.senac.controlador;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import br.com.senac.modelo.Caminhao;
import br.com.senac.modelo.Marca;
import br.com.senac.modelo.Modelo;

@ManagedBean(name="CadastroCaminhaoControlador")
public class CadastroCaminhaoControlador {

	private Caminhao caminhao;
	
	@PostConstruct
	public void init(){
		caminhao = new Caminhao();
	}
	
	public void cadastrar(){
		caminhao.persistir();
	}

	public Caminhao getCaminhao() {
		return caminhao;
	}

	public void setCaminhao(Caminhao caminhao) {
		this.caminhao = caminhao;
	}
	
	public void persistir(){
		System.out.println("Salvando caminhão");
		caminhao.salvar();
		String mensagem = "Caminhao " + caminhao.getPlaca() + "Cadastrado com sucesso";
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(mensagem));
	}
	
	public List<Marca> getRetornaMarcas(){
		return Marca.retornaListaMarcas();
	}
	
	public List<Modelo> getRetornaModelos(){
		return Modelo.retornaListaModelos();
	}
	
}

o @ManagedBean está correto!!!!!!

olha meu cadastro_caminhao.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.prime.com.tr/ui">

	<ui:composition template="../home.xhtml">

		<ui:define name="conteudo">
			<h:form id="caminhao">
				<p:messages id="mgs" errorStyle="color:red" infStyle="color:blue" />
				
				<p:panel id="pnl" header="Cadastro de Caminhao" toggleable="true"
					closable="true" toggleSpeed="500" closeSpeed="500"
					widgetVar="panel">
					<h:panelGrid columns="2">
						<h:outputText value="Proprietário " />
						<p:inputText id="descricao" value="#{cadastroCaminhaoControlador.caminhao.proprietario}" required="true" requiredMesssage="Informe o proprietario do caminhão" />
						
						<h:outputText value="Telefone do Proprietário " />
						<p:inputMask value="#{cadastroCaminhaoControlador.caminhao.telefoneProprietario}" mask="([telefone removido]" id="telefone" required="true" requiredMesssage="Informe o telefone do proprietario do caminhão" />
							
						<h:outputText value="Ano " />
						<p:inputText id="ano" value="#{cadastroCaminhaoControlador.caminhao.ano}" required="true" requiredMesssage="Informe o ano do caminhão" />
						
						<h:outputText value="Cor " />
						<p:inputText id="cor" value="#{cadastroCaminhaoControlador.caminhao.cor}" required="true" requiredMesssage="Informe a cor do caminhão" />
						
						<h:outputText value="Preço " />
						<p:inputText id="preco" value="#{cadastroCaminhaoControlador.caminhao.preco}" required="true" requiredMesssage="Informe o preco do caminhão" />
						
						<h:outputText value="Placa " />
						<p:inputMask value="#{cadastroCaminhaoControlador.caminhao.placa}" mask="aaa-9999" id="placa" required="true" requiredMesssage="Informe a placa do caminhão" />
						
						<h:outputText value="Tipo carroceria " />
						<p:inputText id="tpcarroceria" value="#{cadastroCaminhaoControlador.caminhao.tipoCarroceria}" required="true" requiredMesssage="Informe o tipo de carroceria do caminhão" />
						
						<h:outputText value="Marca" />
						<p:selectOneMenu value="#{cadastroCaminhaoControlador.caminhao.marca.id}" effect="drop">
							<f:selectItems value="#{CadastroMarcaControlador.retornaMarcas}" var="marca" itemValue="#{marca.id}" itemLabel="#{marca.descricao}"/>
						</p:selectOneMenu>
						
						<h:outputText value="Modelo" />
						<p:selectOneMenu value="#{cadastroCaminhaoControlador.caminhao.modelo.id}" effect="drop">
							<f:selectItems value="#{CadastroModeloControlador.retornaModelos}" var="modelo" itemValue="#{modelo.id}" itemLabel="#{modelo.descricao}"/>
						</p:selectOneMenu>
						
						<h:outputText value="Avaria" />
						<p:inputTextarea style="width:300px;height:100px;" effectDuration="400" value="${cadastroCaminhaoControlador.caminhao.avaria}" />
						
						<p:commandButton id="salvar" value="Salvar" actionListener="#{cadastroCaminhaoControlador.persistir}" update="caminhao,consulCaminhao" />
					</h:panelGrid>
				</p:panel>
				
			</h:form>
			<ui:include src="_consultar_caminhao.xhtml"></ui:include>
		</ui:define>
	</ui:composition>
</html>
sech777

Repare neste trecho. Ele já te informa onde está o erro:

javax.servlet.ServletException: /caminhao/cadastro_caminhao.xhtml @39,95 value="#{CadastroCaminhaoControlador.caminhao.marca.id}": Target Unreachable, identifier 'CadastroCaminhaoControlador' resolved to null  
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)

Troque isto:

value="#{CadastroCaminhaoControlador.caminhao.marca.id}"

Por:

value="#{cadastroCaminhaoControlador.caminhao.marca.id}"

Note a inicial minúscula

Hebert_Coelho

Verifique se o caminhão está null quando a chamada ocorre, ou a marca.

Criado 7 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 4
Participantes 4