Ao executar um projeto de Primavera-boot (java -jar /path/to/war.war) .jsp arquivos não são encontrados.
Métodos anotados com belo trabalho @ResponseBody. O resolvedor vista está chegando com o caminho correto para as páginas JSP, mas eles não são encontrados. Este projeto tem uma classe de configuração e nenhuma web.xml.
Classe de configuração:
@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)
}
}
Log de erro
2013/11/25 09: 08: 28,714 ERROR 1549 --- [tp1945397783-20] org.apache.jasper.servlet.JspServlet: PWC6117: arquivo % 2FUsers% 2Fnode42% 2FDevelopment% 2Fmock-security-ui% 2Fbuild% 2Flibs % 2Fmock-security-ui-2,06-SNAPSHOT.war% 2FWEB-INF% 2Fjsp% 2Falivepage.jsp não encontrado
O caminho para o arquivo .war na entrada do registro está correto e o caminho no arquivo de guerra (WEB-INF / jsp / alivepage.jsp) está correta. A resposta é a mesma, quer utilizando molhe ou Tomcat (o log acima foi a partir do molhe). I têm também não tentou usando o resolvedor vista, especificando um como acima, ou definindo a vista resolvedor através de propriedades. Estou completamente flummoxed como tudo realmente parece que está funcionando, exceto para esta pequeno detalhe. E o @ResponseBody método anotado no controlador funciona bem.
Se alguém tiver alguma sugestão eu certamente apreciar a entrada!













