Iniciante no JSF

2 respostas
fabricio211

Boa tarde Pessoal
Estou com dificuldades no jsf, creio que seja algum básico que nao estou encontrando, ao clicar em salvar ocorre o erro abaixo:

ype Exception report

message /teste.xhtml @14,64 value="#{testeBean.teste.nome}": Target Unreachable, identifier ‘testeBean’ resolved to null

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

exception

javax.servlet.ServletException: /teste.xhtml @14,64 value="#{testeBean.teste.nome}": Target Unreachable, identifier ‘testeBean’ resolved to null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)

root cause

javax.el.PropertyNotFoundException: /teste.xhtml @14,64 value="#{testeBean.teste.nome}": Target Unreachable, identifier testeBean resolved to null

com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)

com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)

javax.faces.component.UIInput.getConvertedValue(UIInput.java:1046)

javax.faces.component.UIInput.validate(UIInput.java:976)

javax.faces.component.UIInput.executeValidate(UIInput.java:1249)

javax.faces.component.UIInput.processValidators(UIInput.java:712)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)

javax.faces.component.UIForm.processValidators(UIForm.java:253)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)

javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195)

com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)

root cause

javax.el.PropertyNotFoundException: Target Unreachable, identifier testeBean resolved to null

org.apache.el.parser.AstValue.getTarget(AstValue.java:98)

org.apache.el.parser.AstValue.getType(AstValue.java:82)

org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:172)

com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)

com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)

javax.faces.component.UIInput.getConvertedValue(UIInput.java:1046)

javax.faces.component.UIInput.validate(UIInput.java:976)

javax.faces.component.UIInput.executeValidate(UIInput.java:1249)

javax.faces.component.UIInput.processValidators(UIInput.java:712)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)

javax.faces.component.UIForm.processValidators(UIForm.java:253)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)

javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195)

com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)

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

Segue as classes e a pagina de exemplo:
package teste;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

@Entity
public class Teste {

@Id
@GeneratedValue
private Long id;

private String nome;

public Long getId() {
	return id;
}

public void setId(Long id) {
	this.id = id;
}

public String getNome() {
	return nome;
}

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

}

package teste;

public class TesteBean {

private Teste teste = new Teste();

public void salvar(){
	TesteDAO dao = new TesteDAO();
	dao.salvar(teste);
	dao.closed();
}

public Teste getTeste() {
	return teste;
}

public void setTeste(Teste teste) {
	this.teste = teste;
}

}

package teste;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

public class TesteDAO {

private EntityManagerFactory factory;
private EntityManager manager;

public TesteDAO(){
	this.factory = Persistence.createEntityManagerFactory("JP2-Hibernate");
	this.manager = factory.createEntityManager();
	this.manager.getTransaction().begin();
}

public void salvar(Teste teste){
	this.manager.persist(teste);
	this.manager.getTransaction().commit();
}

public void closed(){
	this.factory.close();
}

}

teste

Desde ja agradeço a ajuda

2 Respostas

fredericomaia10

A classe TesteBean deve ser anotada com @ManagedBean para se tornar um bean gerenciável pelo JSF.

fabricio211

Inseri o managedBean
package teste;

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

@Entity
public class Teste implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = 7646013794649657437L;

@Id
@GeneratedValue
private Long id;

private String nome;

public Long getId() {
	return id;
}

public void setId(Long id) {
	this.id = id;
}

public String getNome() {
	return nome;
}

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

}

So que agora não ocorre nada, não grava no banco e nao da nenhuma mensagem de erro.

Criado 24 de agosto de 2013
Ultima resposta 24 de ago. de 2013
Respostas 2
Participantes 2