Spring-Boot no encuentra páginas JSP en el archivo WAR
Al ejecutar un proyecto spring-boot (java -jar /path/to/war.war) no se encuentran los archivos .jsp.
Los métodos anotados con @ResponseBody funcionan bien. El programa de resolución de vistas muestra la ruta correcta a las páginas JSP, pero no se encuentran. Este proyecto tiene una clase de configuración y no web.xml.
Clase de configuración:
@Configuration
@EnableAutoConfiguration
@EnableWebMvc
@ComponentScan (basePackages = "org.ghc.security.web")
class ScMain extends WebMvcConfigurerAdapter {
// SpringBoot BootStrap...
static void main (String[] args) {
ApplicationContext ctx = SpringApplication.run (ScMain, args)
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
beanNames.each { beanName ->
System.out.println(beanName);
}
}
@Bean
InternalResourceViewResolver internalResourceViewResolver () {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver()
viewResolver.setPrefix("/WEB-INF/jsp/")
viewResolver.setSuffix(".jsp")
viewResolver
}
}
Controlador
@Controller
class Running {
@RequestMapping ("/alive") // This works fine
@ResponseBody
String amIAlive () {
"ALIVE!"
}
@RequestMapping ("/alive/page") // Path to page resolved, but file not found!
ModelAndView amIAlivePage () {
new ModelAndView("alivepage")
}
}
Registro de errores
2013-11-25 09: 08: 28.714 ERROR 1549 --- [tp1945397783-20] org.apache.jasper.servlet.JspServlet: PWC6117: Archivo "% 2FUsers% 2Fnode42% 2FDevelopment% 2Fmock-security-ui% 2Fbuild "% 2Fmock-security-ui-2.06-SNAPSHOT.war% 2FWEB-INF% 2Fjsp% 2Falivepage.jsp" no encontrado
La ruta al archivo .war en la entrada del registro es correcta, y la ruta en el archivo war (WEB-INF / jsp / alivepage.jsp) es correcta. La respuesta es la misma si se usa Jetty o Tomcat (el registro anterior fue de Jetty). También he intentado no usar la resolución de vista, especificando una como la anterior o configurando la resolución de vista a través de las propiedades. Estoy completamente desconcertado ya que todo parece que está funcionando, excepto por este pequeño detalle. Y el método anotado @ResponseBody en el controlador funciona bien.
Si alguien tiene alguna sugerencia, sin duda agradecería la entrada!