site mvc da primavera na raiz (“/”)

Eu quero mapear o controlador mvc de mola para root (/**) caminho (e não sub-pasta como "/ alguma coisa") enquanto faz exceções commvc:resources (aberto para outro método).

Este deve ser o ABC dessa estrutura, mas aparentemente é uma coisa muito complicada para perguntar sobre isso.

Minhasapp-servlet.xml tem essas exceções óbvias de mapeamento:

<mvc:resources mapping="/favicon.ico" location="/favicon.ico" />
<mvc:resources mapping="/robots.txt" location="/robots.txt" />

E eu tenho esse controlador:

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/**")
public class MainController {

    @RequestMapping(method = RequestMethod.GET)
    public String service(final HttpServletRequest request) {
        final String servlet_path = request.getServletPath();
        System.out.println(String.format("%s %s", new Date().toString(), servlet_path));
        return "test";
    }
}

Agora quando eu clico em "/" ou "/ test" ou "/ test / page" recebo uma saída como:

Fri Aug 03 00:22:12 IDT 2012 /
Fri Aug 03 00:22:13 IDT 2012 /favicon.ico

.. Vejo?service() está sendo chamado para/favicon.ico mesmo quando explicitamente excluído!

Agora eu acho que há alguma "prioridade" para o@Controller sobre o XML, ainda assim, como faço a exclusão funcionar?

Um requisito simples - tenha o site em "/".

P.SEsta resposta responde a uma pergunta muito semelhante.

Outra nota: Esta questão não é sobre o contexto do tomcat.

questionAnswers(2)

yourAnswerToTheQuestion