Javax.el.ELException + JBOSS + JSF

3 respostas
L

Pessoal, tenho um MB com o seguinte método:

public String efetuaLogin() throws Exception {
      setMensagem(null);
      setResposta(null);

      FacesContext fc = FacesContext.getCurrentInstance();
      UsuarioDao usuarioDao = new UsuarioDao();

      if (!(usuarioDao.efetuaLogin(getUsuario().getLogin(), getUsuario().getSenha()))) {
         setMensagem("usuario ou senha incorreto");
         setUsuario(new Usuario());
      } else {
         setResposta("loginOk");
      }

      if (getMensagem() != null) {
         fc.addMessage("formLogin", new FacesMessage(getMensagem()));
      }

      return getResposta();
   }

esse método é chamado na minha home

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:rich="http://richfaces.org/rich" >

   <head>
      <title>::: Controle da AHR de PTTC e DSA do DECEx :::</title>

      <style type="text/css">
         @IMPORT url("css/estilo.css");
      </style>
   </head>

   <body>
      <div id="corpo">
         <f:view>
            <rich:panel id="painelCorpo">
               <f:facet name="header">
                  <h:outputText value="Sistema de controle de PTTC e DSA do DECEx" />
               </f:facet>

               <rich:panel id="painelLogin">
                  <f:facet name="header">
                     <h:outputText value="Digite seu login e senha para entrar no sistema" />
                  </f:facet>

                  <h:form id="formLogin">
                     <h:panelGrid columns="2">
                        <h:outputLabel value="Login:" for="login" />
                        <h:inputText id="login" value="#{managedBeanUsuario.usuario.login}" required="true" requiredMessage="Digite seu login" />

                        <h:outputLabel value="Senha:" for="senha" />
                        <h:inputSecret id="senha" value="#{managedBeanUsuario.usuario.senha}" required="true" requiredMessage="Digite sua senha" />

                        <h:commandButton value="entrar" action="#{managedBeanUsuario.efetuaLogin}" />
                        <h:commandButton value="recuperar senha" action="lembrarSenha" immediate="true" />
                     </h:panelGrid>
                     <rich:messages styleClass="msgErro" />
                  </h:form>
               </rich:panel>
            </rich:panel>
         </f:view>
      </div>
   </body>
</html>

Quando jogo o arquivo .war no JBOSS e rodo a minha aplicação tenho o seguinte erro:

root cause

javax.servlet.ServletException: /home.xhtml: Property 'efetuaLogin' not found on type controle.ManagedBeanUsuario
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:54)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

javax.el.ELException: /home.xhtml: Property 'efetuaLogin' not found on type controle.ManagedBeanUsuario
	com.sun.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:53)
	com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
	com.sun.facelets.compiler.UILeaf.encodeAll(UILeaf.java:149)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
	com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	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)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:54)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Alguém o pq disso e como posso resolver?

3 Respostas

C

Caro, conseguiu solucionar o seu problema? Estou passando pela mesma coisa e está difícil uma solução. Poderia ajudar?

L

Amigo… Quando estava fazendo esse sistema, era meu projeto final da faculdade… Então era uma correria só… Solução que encontrei… Saí do JBOSS e fui para o Tomcat.

fbl.lucas

Se efetuaLogin é um método, ele esta sendo interpretado como uma propriedade do managedBeanUsuario. Talvez isto resolva:

<h:commandButton value="entrar" action="#{managedBeanUsuario.efetuaLogin()}" />
Criado 8 de outubro de 2010
Ultima resposta 27 de fev. de 2012
Respostas 3
Participantes 3