Error DispatchAction do Struts 1.3.8 com action

0 respostas
I

Estou tentando usar DispatchAction no Struts 1.3.8, mas não funfa. O método não é achado dentro da classe LoginAction, oq posso fazer?

action do struts-config:

<action path="/login" 
	type="br.com.sce.controller.action.login.LoginAction" 
	parameter="login"
	name="loginForm" 
	input="/jsp/login.jsp" 
	scope="request" 
	validate="true">
				
         <forward name="fwd-sucesso" path="/jsp/index.jsp"/>
</action>

Classe LoginAction:

package br.com.sce.controller.action.login;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.actions.DispatchAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import br.com.sce.business.dao.usuario.UsuarioDAO;
import br.com.sce.business.vo.login.LoginVO;
import br.com.sce.business.vo.usuario.UsuarioVO;
import br.com.sce.resources.ConstantsUtil;

public class LoginAction extends DispatchAction{

	public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

		System.out.println("*** LoginAction ***");
		
		UsuarioDAO daoUsuario = new UsuarioDAO();
		LoginVO loginVO = (LoginVO)form;
		
		boolean valida = false; // Retorno do BD validando o acesso
		
		ActionMessages errors = new ActionMessages();
		
		System.out.println("getLogin: " + loginVO.getLogin());
		System.out.println("getSenha: " + loginVO.getSenha());
		
		if (loginVO.getLogin() == null || loginVO.getLogin().trim().equals("")) { // trim tira os espaços em branco
			errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.login"));
			
		}
		if(loginVO.getSenha() == null || loginVO.getSenha().equals("")) {
			errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.senha"));
		}
								
		if(errors.size() != 0) { 
			saveErrors(request, errors);
			System.out.println("Erro no Preenchimento do Login ou Password!");
			return new ActionForward(mapping.getInput());
		} else {
			
			System.out.println("Login ou Password Preenchidas corretamente!");
			System.out.println("Vai no banco validar Login e Password!");
			
			valida = daoUsuario.verificaUsuario(loginVO.getLogin(),loginVO.getSenha());
			UsuarioVO verificaNivelUser = daoUsuario.verificaNivelUsuario(loginVO.getLogin());
			
			System.out.println("loginBean.getNivel(): " + verificaNivelUser.getId());
			
			// Retorno da validação do Login Senha no BD
			if(valida && verificaNivelUser.getId().equals("1")) { // Se validado OK
				System.out.println("NIVEL 1!");
				HttpSession session = request.getSession();
				session.setAttribute("loginBean", loginVO);
				return mapping.findForward(ConstantsUtil.FWD_SUCESSO);
			} 
			if (valida && verificaNivelUser.getId().equals("2")){
				System.out.println("NIVEL 2!");
				return mapping.findForward(ConstantsUtil.FWD_SUCESSO);
			}
			
			else {
				System.out.println("Login ou Password invalido no BD!");
				errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.validador"));
				saveErrors(request, errors);
				return new ActionForward(mapping.getInput());
			}
		}
						
	}
	
}

Error:

type Exception report

message 

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

exception 

javax.servlet.ServletException: Action[/login] does not contain specified method (check logs)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.NoSuchMethodException: Action[/login] does not contain specified method (check logs)
	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:261)
	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.
Criado 22 de novembro de 2008
Respostas 0
Participantes 1