Meu bean não é encontradopela aplicação (estudando jsf)

ola… obrigado antes de tudo…

estou estudando jsf aqui, tenho um bean declarado no faces-config.xml, segue trecho do faces-config.xml:

<managed-bean>
        <managed-bean-name>
            validaForm
        </managed-bean-name>

        <managed-bean-class>
            beans.validaForm
        </managed-bean-class>

        <managed-bean-scope>
            session
        </managed-bean-scope>
    </managed-bean>

    <navigation-rule>
        <from-view-id>
            /formularioJSF.java
        </from-view-id>

         ...
     </navigation-rule>

trecho do meu jsp:

         <f:view>
            <h:form id="idFormulario">
                <h:inputText alt="digite seu nome" id="idNome"
                required="true" value="#{validaForm.nome}"/>

                <h:commandButton id="idBotao" alt="clique para enviaar seu nome"
                action="#{validaForm.acao}" value="enviar" /&gt;<br/><br/>

                &lt;h:messages/&gt;
            &lt;/h:form&gt;
        &lt;/f:view&gt;

ao tentar executar esse jsp ai pelo netbeans, aparece o seguinte erro:

javax.faces.FacesException: Cant instantiate class: beans.validaForm.. beans.validaForm
	com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:282)
	com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:527)
	com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
	com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
	org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
	org.apache.el.parser.AstValue.getValue(AstValue.java:107)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
	javax.faces.component.UIOutput.getValue(UIOutput.java:173)
	com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:896)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause 
java.lang.ClassNotFoundException: beans.validaForm
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Class.java:247)
	com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:274)
	com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:527)
	com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
	com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
	org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
	org.apache.el.parser.AstValue.getValue(AstValue.java:107)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
	javax.faces.component.UIOutput.getValue(UIOutput.java:173)
	com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:896)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

sim… java.lang.ClassNotFoundException: beans.validaForm, mais a classe esta la, pelo netbeans em source packages, esta la o pacote beans e a classe validaForm.java

D:\Documents and Settings\flavio\Meus documentos\NetBeansProjects\jsf\src\java&gt;tree/f Lista de caminhos de pastas para o volume java O número de série do volume é 0006EEA4 3C23:348C D:. &#9492;&#9472;&#9472;&#9472;beans validaForm.java

por que??

editando…se for util, o trecho do mapeamento do jsf no web.xml

&lt;servlet-mapping&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;url-pattern&gt;*.java&lt;/url-pattern&gt; &lt;/servlet-mapping&gt;

vc deixou a classe com o construtor padrão ?? Vc não acha melhor usar o eclipse…rss (brincadeira…)

sim… deixei a classe com o construtor padrão (tava seguindo um livro, porém alterando nomes, mais uma ou outra coisinha… verifiquei que o livro tb não declarou o construtor…)

hehe… nada contra nenhuma IDE, não sei se a brincadeira é por causa de alguns posts anteriores meus falando disso, mais o q eu acho o cumulo é ficarem falando pra pessoa troca de IDE quando o problema referente ao tópico dela nada tem a ver com a tal, posts falando mal da IDe pq ela é ruim (ou otimos argumentos tecnicos do tipo…)

bom…enfim, voltando ao assunto do tópico…sim, a construtor não foi declarado, sendo assim ficou o padrão.

segue o código dele:

[code]package beans;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
*

  • @author flavio
    */
    public class validaForm {

    private String nome;

    /**

    • retorna o nome
    • @return the nome
      */
      public String getNome() {
      return nome;
      }

    /**

    • insere um nome
    • @param nome the nome to set
      */
      public void setNome(String nome) {
      if (nome != null)
      this.nome = nome;
      }

    public String acao(){
    boolean sucesso = true;

     FacesContext contexto = FacesContext.getCurrentInstance();
    
     if (nome != null){
    
         //verifica caractere a caractere se o mesmo é valido (letras e espaços)
         for (int i=0;i&lt;nome.length();i++){
             char c = nome.charAt(i);
    
             //se entra, o caractere é invalido(se não é um caracter E não é um espaço)
             if (!Character.isLetter(c)&& !Character.isSpaceChar(c)){
                 FacesMessage mensagemErro = new FacesMessage("digite somente caracteres e espaços");
                 contexto.addMessage("formulario", mensagemErro);
                 sucesso = false;
                 break;
             }
    
         }
     }else
         sucesso = false;
    
     return (sucesso ? "sucesso" : "falha");
    

    }

}
[/code]>

seu código esta correto assim como seu faces config…

acho q vc deveria iniciar outro projeto e tentar de novo do mesmo jeito…pelo que vc passou esta tudo certo…

blz, eu vo tenta isso…

deve ser alguma outra coisa (eu até tentei recompilar/salvar tudo pra caso alguma coisa não tenha sido compilada ainda com tudo o q precisava…)

não imagino do q mais que eu precise… bom…eu vo tenta fazer isso que vc falou… talvez seja pq eu to com uma versão rc (6.5 rc)

obrigadão…eu vo tenta isso…vlw