【问题标题】:Deploying Spring Boot app to AWS beanstalk将 Spring Boot 应用程序部署到 AWS beanstalk
【发布时间】:2015-01-25 20:06:54
【问题描述】:

从昨天开始,我一直在尝试在 AWS Beanstalk 上的 Tomcat 中部署 Spring Boot,但我总是遇到这个异常:

    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'errorPageFilter': Initialization of bean failed;
      .....

       Caused by: java.lang.ClassCastException: org.springframework.boot.context.web.ErrorPageFilter cannot be cast to org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory
        at org.coursera.symptomserver.auth.config.OAuth2SecurityConfiguration$1.customize(OAuth2SecurityConfiguration.java:212)
        at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:67)
        at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:54)
 ...

在我的本地开发环境中,我没有这个错误。在我的本地开发人员中,我使用 '1.0.2.RELEASE' 版本在 Tomcat 7 上进行开发。

我在 AWS Beanstalk 中部署在 Tomcat 7 实例上创建了一个战争,并且总是出现以下错误。我该如何解决这个错误?

【问题讨论】:

    标签: spring-mvc tomcat amazon-web-services spring-boot amazon-elastic-beanstalk


    【解决方案1】:

    当您将 Spring Boot 应用程序部署到独立的 servlet 容器时,它使用一个特殊的“嵌入式”servlet 容器ErrorPageFilter,通过将请求转发到配置的错误页面来处理应用程序错误。 org.coursera.symptomserver.auth.config.OAuth2SecurityConfiguration$1 中的代码错误地假设此类是 org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory,这导致 ClassCastException

    要做的第一件事是通过添加instanceof 检查使这段代码更加健壮,以便它只在知道它会成功时才尝试强制转换。其次,当您实际部署到独立的 Tomcat 实例时,您需要通过更改其 server.xmlcontext.xml 而不是以编程方式将其应用于 Tomcat。

    【讨论】:

    猜你喜欢
    • 2014-05-03
    • 2020-07-05
    • 2018-12-31
    • 2015-09-07
    • 2017-09-28
    • 2020-11-09
    • 2021-02-11
    • 2018-12-07
    • 1970-01-01
    相关资源
    最近更新 更多