1

Я пытаюсь со вчерашнего дня, чтобы развернуть загрузку пружинный в Tomcat на AWS Beanstalk, и я всегда это исключение выращенного:Развертывание Spring загрузки приложение для AWS Beanstalk

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) 
... 

В моей локальной среде Dev, я не» t имеет эту ошибку. В моем локальном разработчике я разработал Tomcat 7 с версией «1.0.2.RELEASE».

Я создал войну с тем, что я развертываю на экземпляре Tomcat 7 в AWS Beanstalk, и ошибка ниже всегда выходит. Как я могу исправить эту ошибку?

ответ

0

При развертывании приложения Spring Boot в автономный контейнер сервлета он использует специальный «встроенный» контейнер сервлетов, ErrorPageFilter, для обработки ошибок приложений путем пересылки запросов на настроенные страницы ошибок. Код в org.coursera.symptomserver.auth.config.OAuth2SecurityConfiguration$1 неверно предполагает, что этот класс является org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory, что приводит к ClassCastException.

Первое, что нужно сделать, - сделать этот код более надежным, добавив проверку instanceof, чтобы она только пыталась выполнить бросок, когда она знает, что она будет успешной. Во-вторых, поскольку вы на самом деле развертываете отдельный экземпляр Tomcat, вам необходимо применить эту настройку к Tomcat, изменив ее server.xml или context.xml, вместо того, чтобы делать это программно.

+0

У меня есть точное исключение - я не гуру весеннего сапога, не могли бы вы дать мне советы о том, как я могу это исправить? – Simon

+0

Здравствуйте, я задал вопрос здесь: http://stackoverflow.com/questions/34240159/spring-boot-war-file-on-tomcat-errorpagefilter-cannot-be-cast-to-tomcatembedded – Simon