2014-09-11 3 views
1

Я смог развернуть мой проект Spring Boot как WAR-файл в контейнер Tomcat 6. Однако при доступе к службам я получаю это исключение. Любая помощь приветствуется.Исключение из запуска spring-boot-legacy

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I 
    at org.springframework.web.servlet.FrameworkServlet.publishRequestHandledEvent(FrameworkServlet.java:1066) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:996) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.springframework.boot.legacy.context.web.MetricFilterAutoConfiguration$MetricsFilter.doFilterInternal(MetricFilterAutoConfiguration.java:89) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Unknown Source) 

Sep 11, 2014 12:41:58 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet knox-analytics-api threw exception 
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I 
    at org.springframework.web.servlet.FrameworkServlet.publishRequestHandledEvent(FrameworkServlet.java:1066) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:996) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.springframework.boot.legacy.context.web.MetricFilterAutoConfiguration$MetricsFilter.doFilterInternal(MetricFilterAutoConfiguration.java:89) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Unknown Source) 

Интересно, имеет ли он какое-либо отношение к фильтру, но какой-либо вход очень сильно ослабевает.

Отредактировано: весны-загрузка-стартер-родитель: 1.2.0.BUILD-ПАНОРАМА весна-загрузка наследия: 1.1.2.BUILD-ПАНОРАМА

ответ

3

Похоже, вы используете Spring 4.1. 0 и попали SPR-12151. Трудно посоветовать лучший курс действий, так как вы не сказали, какую версию Spring Boot вы используете.

У вас есть несколько вариантов:

  1. Использование Spring Загрузочных 1.1.6 и 4.0.7 Spring
  2. Объявите обычай DispatcherServlet с публикацией событий отключенного
  3. Использование Spring загрузки 1.2.0 снимки с весной 4.1.1 моментальные снимки

Второй вариант работает, поскольку проблема заключается в пути кода публикации публикации. Вы можете объявить обычай DispatcherServlet с публикацией событий отключенного путем добавления боба в конфигурацию приложения:

@Bean(name = DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME) 
public DispatcherServlet dispatcherServlet() { 
    DispatcherServlet dispatcherServlet = new DispatcherServlet(); 
    dispatcherServlet.setPublishEvents(false); 
    return dispatcherServlet; 
} 
+0

Я попробовал метод 3, и он просто работал для меня. Спасибо. –

+1

Просто хотел добавить, что по какой-то причине третий вариант перестает работать для меня, поэтому я попробовал первый вариант, и он тоже работал. –

Смежные вопросы