繁体   English   中英

将Spring Boot应用程序部署到AWS Beanstalk

[英]Deploying Spring Boot app to AWS beanstalk

从昨天开始,我一直在尝试在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 Boot应用程序部署到独立的servlet容器时,它使用特殊的“嵌入式” servlet容器ErrorPageFilter通过将请求转发到已配置的错误页面来处理应用程序错误。 org.coursera.symptomserver.auth.config.OAuth2SecurityConfiguration$1的代码错误地假定该类是org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory ,从而导致ClassCastException

首先要做的是通过添加一个instanceof check来使此代码更健壮,以便仅在知道它将成功的instanceof才尝试强制类型转换。 其次,在实际部署到独立的Tomcat实例时,您需要通过更改Tomcat的server.xmlcontext.xml而不是以编程方式将其应用于Tomcat。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM