Erro usando action

galera eu to tentando fazer um código que liste usando action mais num ta dando certo…

ele gera um erro 404…

mais eu to chamando certinho pelo meu entendimento…

http://localhost:8080/carros/lista

ajuda ai galera…vlw

segue os códigos.

[size=18]classe ListaTarefaAction [/size]

[code]package br.com.cfr.action;

import java.util.List;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

import br.com.cfr.jdbc.dao.TarefaDAO;
import br.com.cfr.jdbc.modelo.Tarefa;

public class ListaTarefasAction {

private List<Tarefa> tarefas;


@Action(value="lista", results= {
@Result(name="ok", location="lista-tarefas.jsp")
})
public String execute() throws ClassNotFoundException {
tarefas = new TarefaDAO().lista();
return "ok";
}
public List<Tarefa> getTarefas() {
return tarefas;
}

}

[/code]

[size=18]classe TarefaDAO [/size]

[code]package br.com.cfr.jdbc.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Date;

import br.com.cfr.jdbc.ConnectionFactory;
import br.com.cfr.jdbc.modelo.Tarefa;

public class TarefaDAO {

Connection connection; 
 
public TarefaDAO() throws ClassNotFoundException{ 
    this.connection = new ConnectionFactory().getConnection(); 
} 
 
public void adiciona (Tarefa tarefa){ 
     
    String sql = "insert into tab_tar (descricao , finalizado) value(?,?)"; 
     
    try { 
        PreparedStatement stmt = connection.prepareStatement(sql); 
        stmt.setString(1, tarefa.getDescricao()); 
        stmt.setString(2, tarefa.getFinalizado());
        
         
        stmt.execute(); 
        stmt.close();                
    } catch (SQLException e){ 
        throw new RuntimeException (e); 
    } 
     
     
     
}

 

  public List<Tarefa> lista() {
        try {
              List<Tarefa> tarefas  = new ArrayList<Tarefa>();
              PreparedStatement stmt = this.connection.prepareStatement("select * from tab_tar");
              ResultSet rs = stmt.executeQuery();
             
              while (rs.next()){
                   
                    Tarefa tarefa = new Tarefa();
                    tarefa.setId(rs.getLong("id"));
                    tarefa.setDescricao(rs.getString("descricao"));
                    tarefa.setFinalizado(rs.getString("finalizado"));
                    
                    Calendar data = Calendar.getInstance();
    				data.setTime(rs.getDate("dataFinalizacao"));
    				tarefa.setDataFinalizacao(data);
                   
                    tarefas.add(tarefa);
              }
              rs.close();
              stmt.close();
              return tarefas;  
             
        } catch (SQLException e) {
        	
        	throw new RuntimeException(e);
        }    
  }

  public void remove(Tarefa tarefa) {
       
        try {
              PreparedStatement stmt = connection.prepareStatement("delete from tab_tar where id=?");
              stmt.setLong(1, tarefa.getId());
              stmt.execute();
              stmt.close();
        } catch (SQLException e) {
              throw new RuntimeException(e);
        }
}
       
  }

[/code]

[size=18]o jsp [/size]
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>

Criar nova tarefa

</tr>
</c:forEach>
		</table>
</body>
Id Descrição Finalizado Data de finalização
${tarefa.id} ${tarefa.descricao} ${tarefa.finalizado}

up