Non ho verificato bene tutto quello che hai scritto ma una cosa mi salta all'occhio: il mapping del DispatcherServlet.
Generalmente/tipicamente (e se non ci sono esigenze particolari o più "strane"), il DispatcherServlet lo si mappa su:

<url-pattern>/</url-pattern>

Dove "/" indica sostanzialmente il "default" servlet, se non ci sono altri mapping più specifici, tutto quanto va al DispatcherServlet ed è poi compito di Spring matchare sui controller.

Quindi puoi mettere:

@RequestMapping("/welcome.html")

E a quel punto:

http://host:porta/nomecontesto/welcome.html corrisponde.