我正在尝试将我的Spring Boot项目部署到Amazon Elastic Beanstalk。我已经测试过并且没有问题,如果我使用默认的Thymeleaf配置,但当我切换到基于JSP的设置时,我得到了404,因为它找不到JSP(位于src / main / webapp / WEB中) -INF / jsp)
我试图部署示例(spring-boot-sample-tomcat-jsp)并发现当我运行提供的测试时,这也给了我404。
以下是我通常配置Spring Boot Projects以允许使用JSP的方法。
将Jasper和JSTL添加到pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
覆盖默认视图解析程序配置
@Configuration
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter
{
@Bean
public ViewResolver getViewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
configurer.enable();
}
}
为JSP创建文件夹(src / main / webapp / WEB-INF / jsp)
现在这个方法没有问题,直到我部署到Elastic Beanstalk,我发现无论我是创建一个jar并使用Java(在Elastic Beanstalk中)还是创建一个war并使用Tomcat(在eb中)我得到404时任何控制器都尝试返回WEB-INF / jsp文件夹中的视图。
是不是建议使用上述切换到JSP的方法?有没有更好的方法来配置Spring Boot以使用Tomcat / Jasper / JSP?
我在github here
上尝试了Spring Boot Samples中提供的方法但有趣的是,如果我运行提供的测试,我会得到相同的404。
非常感谢任何帮助。如果有更好的方法来部署使用JSP的Spring Boot项目,我很乐意切换,但目前我似乎已将自己配置到一个角落。
THX!