Unable to create managed bean

3 respostas
B

Olá Pessoal,

estou tentando implementar uma página usando JSF.
O meu faces-config.xml é o seguinte:

<?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">

	<navigation-rule>
		<from-view-id>/buscar.jsp</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/sucesso_busca.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>failure</from-outcome>
			<to-view-id>/falha_busca.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	
	<navigation-rule>
		<from-view-id>/inserir.jsp</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/sucesso_insercao.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>failure</from-outcome>
			<to-view-id>/falha_insercao.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	
	<managed-bean>
		<managed-bean-name>agenda</managed-bean-name>
		<managed-bean-class>br.com.meindica.beans.AgendaDB</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	
</faces-config>

o Meu web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Começando a brincar com JSF</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <context-param>
  	<param-name>javax.faces.STATE SAVING_METHOD</param-name>
  	<param-value>client</param-value>
  </context-param>
  
  <context-param>
  	<param-name>javax.faces.CONFIG FILES</param-name>
  	<param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  
  <listener>
  	<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
  
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
</web-app>

Minha pilha de erros é a seguinte:

com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean agenda. The following problems were found: - Bean or property class Class br.com.meindica.beans.AgendaDB for managed bean agenda cannot be found. - Bean or property class Class br.com.meindica.beans.AgendaDB for managed bean agenda cannot be found. - Bean or property class Class br.com.meindica.beans.AgendaDB for managed bean agenda cannot be found. com.sun.faces.mgbean.BeanManager.create(BeanManager.java:204) com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:88) javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:73) org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45) org.apache.el.parser.AstValue.getValue(AstValue.java:86) org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101) 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:850) javax.faces.component.UIComponent.encodeAll(UIComponent.java:946) javax.faces.render.Renderer.encodeChildren(Renderer.java:148) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:826) javax.faces.component.UIComponent.encodeAll(UIComponent.java:936) javax.faces.component.UIComponent.encodeAll(UIComponent.java:942) com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:273) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:204) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) 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)

E a minha classe agenda é a seguinte:

package br.com.meindica.beans;

import java.sql.*;

public class AgendaDB {
	private String nome = blank;
	private String endereco = blank;
	private String cidade = blank;
	private String telefone = blank;
	private String result_busca = blank;
	private String result_inserir = blank;
	public static final String BUSCA_INVALIDA = "failure";
	public static final String BUSCA_VALIDA = "success";
	public static final String SUCESSO_INSERCAO = "success";
	public static final String FALHA_INSERCAO = "failure";
	static Connection con = null;
	static Statement stm = null;
	static ResultSet rs;
	static private String blank = "";
	
	public AgendaDB() {
		if (con==null) {
			try {
				Class.forName("com.mysql.jdbc.Driver");
				con =
				DriverManager.getConnection("jdbc:mysql//127.0.0.1:3306/jsf","root","123456");
			} catch (SQLException e) {
				System.err.println ("Erro: "+e);
				con = null;
			} catch (ClassNotFoundException e) {
				System.out.println("ClassNotFound...");
				e.printStackTrace();
			}
		}
	}
		
	public String cadastrar() {
		String result_inserir = FALHA_INSERCAO;
		try {
			stm = con.createStatement();
			stm.execute("INSERT INTO pessoa(nome,endereco,cidade,telefone) VALUES ('" + nome + "','"+
			endereco + "','" + cidade + "','"+ telefone + "')");
			stm.close();
			result_inserir = SUCESSO_INSERCAO;
		} catch (SQLException e) {
			System.err.println ("Erro: "+e);
			result_inserir = FALHA_INSERCAO;
		}
		return result_inserir;
	}
	
	public String buscar() throws SQLException {
		String result_busca = BUSCA_INVALIDA;
		try {
			stm = con.createStatement();
			rs = stm.executeQuery("SELECT * FROM pessoa WHERE nome = '" + nome + "'");
		if (rs.next()) {
			nome = rs.getString(1);
			endereco = rs.getString(2);
			cidade = rs.getString(3);
			telefone = rs.getString(4);
			result_busca = BUSCA_VALIDA;
		}
		else
			result_busca = BUSCA_INVALIDA;
			rs.close();
			stm.close();
		} catch (SQLException e) {
			System.err.println ("Erro: "+e);
		}
		return result_busca;
	}

/* GETTERS AND SETTERS */
}

Alguém poderia me ajudar pois não faço a menor ideia de como arrumar .....

3 Respostas

F

Olá pessoal.

Também estou com o mesmo problema que o amigo ae de cima… mas o mais estranho no meu , é que quando eu rodo local, tudo funciona perfeitamente… e quando coloco em produção (linux), aparece o erro :

javax.servlet.ServletException: Unable to create managed bean controleUsuario. The following problems were found:
- Bean or property class control.UsuarioControle for managed bean controleUsuario cannot be found.

Parece que quando chama o bean , já não se sabe mais onde ele está.

Alguém tem uma idéia do que possa estar acontecendo ?

Obrigado

L

Depois de quebrar muita a cabeça consegui resolver este problema:

  • Bean or property class cannot be found.

RESOLUÇÂO:

Em propriedades do projeto >> Java Build Path >> Libraries

Tinha add duas Library JRE System Library, uma era a JRE 1.06_7 e a outra era a JRE 1.06_10, a primeira estava instalada em meu computador e a segunda acho que veio da importação do projeto exclui a JRE 1.06_10 e tudo funcionou … Ahhhhhhhhhhhh já não estava mais aguentado este erro.

att,

Leonardo Couto.

A

Amigo, se vc fez o projeto no maven, pode ser o diretorio de saida dos .class que não estão sendo encontrados.

Eles devem ficar em:

nome_do_seu_projeto/src/main/webapp/WEB-INF/classes

No eclipse, isso fica em Propriedades -> Java Buld Path.

Preencher o campo com label “Default output folder” com isso que mencionei acima. e Teste denovo

Espero ter ajudado, pois so novo nesse maven tbm e tenho mts dificuldades, mas o que eu aprendo vou compartilhando. blz?

Falows companheiro! até a próxima!

Criado 15 de janeiro de 2008
Ultima resposta 7 de mai. de 2013
Respostas 3
Participantes 4