No mapping found for HTTP request with URI , migrando de Struts1 para SPring3

2 respostas
Victor_Neves

boa tarde pessoal, eu estou tentando migrar uma sistema feito em struts1 para spring3, mas estou tendo um problema com No mapping found for HTTP request with URI
inicialmente, estou tentando resolver o problema para logar no sistema, mas sempre que tento realizar o login eu recebo esse erro:
[org.springframework.web.servlet.PageNotFound] No mapping found for HTTP request with URI [/app2/realizaLogon.do] in DispatcherServlet with name 'spring'
já procurei em vários sites, parece haver inumeros problemas que podem causar esse erro , como também inumeras soluções, mas várias que ja testei nao adiantou :(
alguém por favor poderia me ajudar? obrigado

em meu web.xml eu tenho isso aqui:
<servlet>
	    <servlet-name>spring</servlet-name>
	    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	    <load-on-startup>1</load-on-startup>
	  </servlet>
	
	  <servlet-mapping>
	    <servlet-name>spring</servlet-name>
	    <url-pattern>*.do</url-pattern>
	  </servlet-mapping>
tenho uma classe abstrata chamada ControlerSpring que será extendida por todos os outros controlers
public abstract class ControlerSpring implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request,	HttpServletResponse response) throws Exception {
			ApplicationContext beanFactory = new ClassPathXmlApplicationContext("/WEB-INF/spring-servlet.xml");
			ModelAndView model = new ModelAndView("/paginas/index.jsp");
			model = businessLogic(request, response,beanFactory,model);
			
		return model;
	}
	
	public abstract ModelAndView businessLogic(HttpServletRequest request , HttpServletResponse response, ApplicationContext beanFactory, ModelAndView model ) throws Exception;
	}

entao na action RealizaLogonAction eu apenas extendi a ControlerSpring e implementei o metodo principal que eu substitui, por que eu quero que quando a requisição passe aqui eu tenha disponivel dois novos objetos ,beanFactory e model

@Controller
@RequestMapping("/app2")
public class RealizaLogonAction extends ControlerSpring {
	private static final Logger log = Logger.getLogger(RealizaLogonAction.class);

	@Override
	@RequestMapping(value="/realizaLogon.do", method= RequestMethod.POST )
	public ModelAndView businessLogic(HttpServletRequest request, HttpServletResponse response,ApplicationContext beanFactory, ModelAndView model) throws Exception {
		HashMap<String, String> parametros = new HashMap<String, String>();
		model.addAllObjects(parametros);
// trabalho para realizar login
return model
}

2 Respostas

drsmachado

Quase certeza que você esqueceu de trocar alguma coisa aí.
Toda a extensão .do é referente ao mapeamento do Struts 1.
Uma coisa que não sei se te contaram é que, quando se arranca as actions do Struts 1, você precisa, também, arrancar os FormBeans e toda e qualquer taglib dele.
Parece ser o caso. Você tem uma parte de uma coisa e outra de outra.
Não vai funcionar.

Victor_Neves

eu arranquei todas as taglibs e todos os xmls de configuração do struts… eu parei em extender a classe abstrata, me parece que o spring nao deixa eu definir uma classe abstrata que implementa controller…
dai a aplicação passou a enxergar a classe para realizar logon e esta fazendo logon tranquilo, meu problema agora é popular os beans durante as requisições… ou seja, é a view entregar pros controlers um bean já populado e vice e versa =/

Criado 16 de agosto de 2012
Ultima resposta 16 de ago. de 2012
Respostas 2
Participantes 2