Problemas com herença de action no struts. Alguém pode me ajudar?

E aí galera beleza?

Estou tendo o seguinte problema.

Cheguei a conclusão que em meu projeto ficará mais fácil se eu tiver uma classe action uqe estende a casse action do struts, com métodos e funcionalidades comuns a todos os actions do projeto.
Até aí tudo bem, criei um action com as caracteristica acima e criei os outos actions herdando dessa classe e não do action e no action mapping coloquei as classes action que hedão desse “action pai” mas quando chamo o link do mapeamento aparece uma aviso de erro indicando que não foi possivel fazer a instnancia do action.

Uma coisa eu pensei: Se uma classe herda de action, então essa classe é um action. Se uma classe herda de uma classe que herdou de um action, ess classe também é um action.
Alguém poode me ajudar?

É perfeitamente possível fazer isso que você quer… Poste os códigos e o erro para que possamos ajudar melhor.

caso você esteja utilizando pacotes, verifique se o caminho está correto no atributo type do elemento action dentro do action-mapping, pois se o caminho de pacotes não estiver correto, ele não vai conseguir localizar a classe.

um outro possível motivo de você não estar conseguindo executar os seus actions é porque vc acabou não compilando os actions.

qualquer coisa posta ai

[]'s

Aí galera beleaza?

bom o erro é esse:


type Status report

message No action instance for path /Processadores could be created

description The server encountered an internal error (No action instance for path /Processadores could be created) that prevented it from fulfilling this request.

meu mapeamento está assim:

 <action path="/Processadores" type="br.com.lojahardware.action.menuesquerdo.ProcessadoresAction">
			<forward name="success" 
				path="menu.esquerdo.hardware.processadores" 
				redirect="false" 
				contextRelative="false" />			
		</action>

minha action “mãe” está asim

/**
 * Criado em 29/06/2006
 */
package br.com.lojahardware.action;

import java.util.HashMap;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.lojahardware.config.Constantes;

/**
 * @author Leandro Costa Silva(<a href="mailto:leandrocosta.silva@terra.com.br">leandrocosta.silva@terra.com.br</a>)
 *
 */
public abstract class SuperAction extends Action {
	
	private HashMap &lt;String,String&gt;configs = null;
	
	abstract public ActionForward execute(ActionMapping mapping,
	        ActionForm form,
	        HttpServletRequest request,
	        HttpServletResponse response) throws Exception ;
	
	public SuperAction(){
		String appConfig = servlet.getServletContext().getRealPath(servlet.getInitParameter(Constantes.CONFIG));
		String boConfig = servlet.getServletContext().getRealPath(servlet.getInitParameter(Constantes.BOPROPERTIES));
		String daoConfig = servlet.getServletContext().getRealPath(servlet.getInitParameter(Constantes.DAOPROPERTIES));
		
		configs = new HashMap&lt;String, String&gt;();
		
		configs.put(Constantes.CONFIG,appConfig);
		configs.put(Constantes.BOPROPERTIES, boConfig);
		configs.put(Constantes.DAOPROPERTIES, daoConfig);
	}
	
	public HashMap getAppConfigs(){
		return configs;
	}

}

A filha é essa:


/**
 * Criado em 26/06/2006
 */
package br.com.lojahardware.action.menuesquerdo;

import java.util.List;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.lojahardware.action.SuperAction;
import br.com.lojahardware.delegate.Delegate;

/**
 * @autor Leandro Costa Silva(<a
 *        href="mailto:leandrocosta.silva@terra.com.br">leandrocosta.silva@terra.com.br</a>)
 * 
 */
public class ProcessadoresAction extends SuperAction {

	public ActionForward execute(ActionMapping mapping,
	        ActionForm form,
	        HttpServletRequest request,
	        HttpServletResponse response) throws Exception {
		
		Delegate delegate = new Delegate(getAppConfigs());
		List processadores = null;

		processadores = delegate.getListaProcessadores();

		request.setAttribute("processadores", processadores);
		return mapping.findForward("success");
	}

}

A meu ver isso está certo mas, vai saber, sa vezes a terra está girando ao contrário, brincaderia. :lol:
Mas obrigado pela força galera!

bom, não vejo nenhuma erro no código e no mapeamento.

Você certificou-se que a subclasse compilada foi colocada no diretório WEB-INF/classes/br/com/lojahardware/action/menuesquerdo?

sim cara
tá tudo no lugar.
:cry: :cry: :cry:

O seu problema deve estar no XML do struts-config, e não nas actions. Dê uma procurada lá. E esse path aqui: path=“menu.esquerdo.hardware.processadores” não faz sentido, o que você quer com ele?

Beleza galera?

Consegui resolver o problema. Não me pergunte como porque não sei.
Só sei que cheguei cedo no trabalho e quando fui testar voála, funcionou perfeitamente. Acho que tem a ver com a posição do sol em relação a marte Agora quanto ao link no forware, é um mapeamento do tiles. Obrigado!