将Spring Boot(使用JSP)部署到Elastic Beanstalk

时间:2017-03-13 17:35:14

标签: spring jsp tomcat spring-boot elastic-beanstalk

我正在尝试将我的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的方法。

  1. 将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>
    
  2. 覆盖默认视图解析程序配置

    @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();
        }
    }
    
  3. 为JSP创建文件夹(src / main / webapp / WEB-INF / jsp)

  4. 现在这个方法没有问题,直到我部署到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!

0 个答案:

没有答案