Erro struts 2

Eaí moçada?

Estou usando struts 2 como camada de controle da minha aplicação e estou tendo dificuldades com alguns erros que deparo!

A seguinte mensagem de erro é exibida no browser quando executo meu projeto:

É como se o servidor não encontrase a action “abrigoAction”, mas a primeira vista está tudo definido corretamente:

jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>TSDA - Tecnologia e Solu&ccedil;&otilde;es Digitais Aplicadas</title>

<link href="<s:url value="/zeuswebserver/recursos/estilos/corpo.css"/>" rel="stylesheet" type="text/css" />
<link href="<s:url value="/zeuswebserver/recursos/estilos/logomarca.css"/>" rel="stylesheet" type="text/css" />
<link href="<s:url value="/zeuswebserver/recursos/estilos/jumpmenu.css"/>" rel="stylesheet" type="text/css" />
<link href="<s:url value="/zeuswebserver/recursos/estilos/menu.css"/>" rel="stylesheet" type="text/css" />
<link href="<s:url value="/zeuswebserver/recursos/estilos/links.css"/>" rel="stylesheet" type="text/css" />
<link href="<s:url value="/zeuswebserver/recursos/estilos/usuario.css"/>" rel="stylesheet" type="text/css" />
<link href="<s:url value="/zeuswebserver/recursos/estilos/data.css"/>" rel="stylesheet" type="text/css" />
<link href="<s:url value="/zeuswebserver/recursos/estilos/abrigos.css"/>" rel="stylesheet" type="text/css" />

<s:head theme="ajax"/>
</head>

<body>

<s:div id="abrigos" href="/abrigoAction!listAbrigosUsuario.action" notifyTopics="listMedidasTopic" theme="ajax"> </s:div>

<!-- <s:div id="medidas" href="/medidasAction!getAbrigoCorrente.action" theme="ajax" listenTopics="listMedidasTopic"></s:div> -->

</body>
</html>

struts.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

	<include file="struts-default.xml" />
	
	<package name="default" extends="struts-default">

		<action name="loginAction!*" method="{1}" class="net.sytes.tsda.zeuswebserver.action.LoginAction">
			<result name="invalid">/error_login.jsp</result>
			<result name="valid">/teste.jsp</result>
		</action>

		<action name="abrigoAction!*" method="{1}" class="net.sytes.tsda.zeuswebserver.action.AbrigoAction">
			<result name="listAbrigos">/abrigos.jsp</result>
		</action>

		<action name="medidaAction!*" method="{1}" class="net.sytes.tsda.zeuswebserver.action.MedidaAction">
			<result name="listMedidas">/medidas.jsp</result>
		</action>

	</package>
	
</struts>

AbrigoAction.java:

package net.sytes.tsda.zeuswebserver.action;

import java.util.Collection;

import net.sytes.tsda.zeuswebserver.bean.Abrigo;
import net.sytes.tsda.zeuswebserver.bean.AbrigosUsuario;
import net.sytes.tsda.zeuswebserver.dao.DaoFactory;
import net.sytes.tsda.zeuswebserver.logic.AbrigoLogic;
import net.sytes.tsda.zeuswebserver.logic.AbrigosUsuarioLogic;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;

public class AbrigoAction extends ActionSupport implements Preparable
{
	private static final long serialVersionUID = 1L;
	
	private DaoFactory daoFactory;
	
	private Collection<AbrigosUsuario> abrigosUsuario;
	private Collection<Abrigo> abrigos;
	
	private AbrigosUsuarioLogic abrigosUsuarioLogic;
	private AbrigoLogic abrigoLogic;
	
	public String listAbrigosUsuario()
	{
		this.daoFactory = new DaoFactory();
		this.abrigosUsuarioLogic = new AbrigosUsuarioLogic(this.daoFactory);
		this.abrigosUsuarioLogic.carrega();
		
		this.getAbrigosDesc();
		
		return "listAbrigos";
	}
	
	public void getAbrigosDesc()
	{
		this.daoFactory = new DaoFactory();
		this.abrigoLogic = new AbrigoLogic(this.daoFactory);
		this.abrigoLogic.carregaAbrigosDesc();
	}
	
	public void prepare() throws Exception 
	{
		// TODO Auto-generated method stub
		this.abrigosUsuario = abrigosUsuarioLogic.getAbrigosUsuario();
		this.abrigos = abrigoLogic.getAbrigos();
	}

	public final Collection<AbrigosUsuario> getAbrigosUsuario() 
	{
		return abrigosUsuario;
	}

	public final void setAbrigosUsuario(Collection<AbrigosUsuario> abrigosUsuario) 
	{
		this.abrigosUsuario = abrigosUsuario;
	}

	public final Collection<Abrigo> getAbrigos() 
	{
		return abrigos;
	}

	public final void setAbrigos(Collection<Abrigo> abrigos) 
	{
		this.abrigos = abrigos;
	}
}

Alguém pode me dizer oq está acontecendo?

Obrigado.

ao dar um start no container, verifa o log…

provelmente esta dando algum pau ai…

[quote=soudaniel_01]ao dar um start no container, verifa o log…

provelmente esta dando algum pau ai…[/quote]

consegue detectar algum problema nestes logs exibidos?

log4j:WARN No appenders could be found for logger (org.apache.catalina.session.ManagerBase).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN No appenders could be found for logger (org.apache.catalina.session.ManagerBase).
log4j:WARN Please initialize the log4j system properly.

Você fez href="/abrigoAction!listAbrigosUsuario.action"

O certo não seria href="/abrigoAction.action!listAbrigosUsuario"?

O nome da action é abrigoAction e o nome do método que você quer chamar é listAbrigosUsuario, certo?

esta certo!

Mas agora estou tentando de outra maneira, mas ainda não obtive sucesso. Minha jsp ficou assim:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>

<s:head theme="ajax" debug="true" />

<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/corpo.css"/>" />
<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/logomarca.css"/>" />
<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/jumpmenu.css"/>" />
<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/menu.css"/>" />
<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/links.css"/>" />
<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/usuario.css"/>" />
<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/data.css"/>" />
<link rel="stylesheet" type="text/css" href="<s:url value="/zeuswebserver/recursos/estilos/abrigos.css"/>" />

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>TSDA - Tecnologia e Solu&ccedil;&otilde;es Digitais Aplicadas</title>

</head>
<body>

	<s:url id="abrigoUrl" action="abrigos" />

	<s:div href="%{abrigoUrl}" theme="ajax" refreshOnShow="true" cssStyle="display:none;"></s:div>

</body>
</html>

struts.xml:

[code]<?xml version="1.0" encoding="UTF-8"?>

<include file="struts-default.xml" />

<package name="default" extends="struts-default">

	<action name="login" class="net.sytes.tsda.zeusws.action.LoginAction">
		<result name="invalid">/error_login.jsp</result>
		<result name="valid">/home.jsp</result>
	</action>
	
	<action name="abrigos" class="net.sytes.tsda.zeusws.action.AbrigoAction">
		<result>/abrigos.jsp</result>
	</action>
	
	<action name="medidas" class="net.sytes.tsda.zeusws.action.MedidaAction">
		<result>/medidas.jsp</result>
	</action>
	
</package>

[/code]

Você está querendo usar aquele lance de div remoto do struts 2, usando ajax, certo? Qual o galho, não aparece nada?
Se for isso, uma primeira coisa que eu notei foi: <s:url id="abrigoUrl" action="abrigos" /> sem namespace.
Outra coisa foi: <s:div href="%{abrigoUrl}" theme="ajax" refreshOnShow="true" cssStyle="display:none;"></s:div> Assim essa div não vai aparecer nunca, pois você usou style display none.
Outra coisa, já experimentou usar o debug, pra ver se a action é chamada?

[quote=fiaux]Você está querendo usar aquele lance de div remoto do struts 2, usando ajax, certo? Qual o galho, não aparece nada?
Se for isso, uma primeira coisa que eu notei foi: <s:url id="abrigoUrl" action="abrigos" /> sem namespace.
Outra coisa foi: <s:div href="%{abrigoUrl}" theme="ajax" refreshOnShow="true" cssStyle="display:none;"></s:div> Assim essa div não vai aparecer nunca, pois :oops:você usou style display none.
Outra coisa, já experimentou usar o debug, pra ver se a action é chamada?[/quote]

isso!! to quereno usar uma div remoto p/ visualizar minha pagina!!! i nao esta apareceno nada…

Assisti a uma video aula que o instrutor nao setou esta prop. namespace!!! qual seria intao o valor adequado p/ “namespace” no meu caso? ja retirei o display nome.

vlw.