Ajuda com JSF e Tomcat

4 respostas
Jeferson_Manetti

olá,

estou realizando um pequeno teste com JSF 1.2 e Tomcat 6.0.

porem esta dando o seguinte erro:

type Exception report

message 

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

exception 

javax.servlet.ServletException: /Faces/Menu.jsp(26,5) '#{item.version}' Property 'version' not found on type teste.TesteJSF
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)


root cause 

org.apache.jasper.el.JspPropertyNotFoundException: /Faces/Menu.jsp(26,5) '#{item.version}' Property 'version' not found on type teste.TesteJSF
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:104)
	javax.faces.component.UIOutput.getValue(UIOutput.java:184)
	com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:201)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:284)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:154)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:856)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:242)
	com.sun.faces.renderkit.html_basic.TableRenderer.renderRow(TableRenderer.java:312)
	com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:133)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:832)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:832)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:202)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
ja conferi e esta tudo certo com a minha classe "TesteJSF" segue a mesma:
package teste;

public class TesteJSF {
	private String version;
	private String nome;
	
	public TesteJSF(){
		setVersion("1.2");
		setNome("Java Server Faces");
	}

	public void setVersion(String version) {
		this.version = version;
	}

	public String getVersion() {
		return version;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return nome;
	}
}
segue classe TesteJSFBean:
package teste;

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

public class TesteJSfBean {
	private List<TesteJSF> todos;
	
	public TesteJSfBean(){
		todos = new ArrayList<TesteJSF>();
		todos.add(new TesteJSF());
		todos.add(new TesteJSF());
		todos.add(new TesteJSF());
	}

	public DataModel getTodos(){
		DataModel model = new ListDataModel(todos);
		return model;
	}
}

segue arquivo .jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Teste JSF</title>
</head>
<body>
	<f:view>
		<h:form>
			<h:dataTable id="items" value="#{testeView.todos}"
				var="item" border="1"
				cellpadding="2" cellspacing="0">

				<f:facet name="header">
					<h:outputText value="Teste JSF" />
				</f:facet>
				
				<h:column>
					<f:facet name="header">
						<h:outputText value="Versão" />
					</f:facet>
					<h:outputText value="#{item.version}" />
				</h:column>	
				
				<h:column>
					<f:facet name="header">
						<h:outputText value="Nome" />
					</f:facet>
					<h:outputText value="#{item.nome}" />
				</h:column>	
				
			</h:dataTable>		
		</h:form>
	</f:view>
</body>
</html>

segue faces-config.xml :

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
    version="1.2">

	 <managed-bean>
	 	<managed-bean-name>testeView</managed-bean-name>
	 	<managed-bean-class>
	 	teste.TesteJSfBean</managed-bean-class>
	 	<managed-bean-scope>session</managed-bean-scope>
	 </managed-bean>

</faces-config>
se eu retirar a propriedade para exibir tipo edeixar so:
<h:outputText value="#{item}" />
isso no lugar de
<h:outputText value="#{item.nome}" />

ele funciona mas gera o seguinte resultado: anexo1

esta muito estranho... ¬¬

sera q alguma alma generosa poderia me ajudar... e ja enfrentei problemas com jsf 1.2 e tomcat 6 mas era a respeito do componente DataTable... dai resolvi utilizar o jsf 1.1 e tomcat 5.5 =(

mas esse aqui ta dificil ^^

blz ate +

4 Respostas

Bravox

troca

<h:outputText value="#{item.version}" />
<h:outputText value="#{item.nome}" />

por

<h:outputText value="#{items.version}" /> 
<h:outputText value="#{items.nome}" />

e ve se rola !

P.S troca items por itens também … hehehehhe

fwbrasil

Bravox,

Sua dica não faz sentido.

Jeferson,

Parece estar tudo correto. Tentou fazer um clean no projeto e no tomcat? Deve ser algum lixo.

Jeferson_Manetti

fwbrasil,

fiz um clean mesmo e deu certo…

isso e meio maluko :shock: mas sabe como eh as vezes acontece ^^

na verdade acho q eu tinha q esfriar a cabecinha um poquinho…

uhauhaauhauh…

isso pq era so um exemplo… kkkk

mas wlw galera pelas dicas…

agradeço a tds q responderam ao topico ^^

fui

Bravox

fwbrasil:
Bravox,

Sua dica não faz sentido.

Jeferson,

Opá foi mal.não prestei atenção para ver que era o atributo id, e que o atributo var estava já declarado.

Criado 16 de julho de 2008
Ultima resposta 20 de jul. de 2008
Respostas 4
Participantes 3