Spring boot 2.0.2.RELEASE with spring 5.0.6.RELEASE NoSuchMethodError AbstractHandlerMapping.obtainApplicationContext - PullRequest
0 голосов
/ 12 мая 2018

Я относительно новичок в Gradle и плагине SpringBoot.

Я пытаюсь создать SpringBoot WAR-файл с Jetty в качестве контейнера.

Я использую SpringBoot 2.0.2.RELEASE с spring-boot-starter-jetty, которые приносят Spring 5.0.6.RELEASE и Jetty 9.4.10.v20180503 (что касаетсяМогу сказать совместимы).

Я не вижу каких-либо несоответствий версий в моем файле WAR, но при запуске собранного bootWar я получаю следующее исключение:

[2018-05-11T18: 28: 09,432ОШИБКА main SpringApplication] Ошибка запуска приложения org.springframework.boot.web.server.WebServerException: невозможно запустить встроенный сервер Jetty со страницы org.springframework.boot.web.embedded.jetty.JettyWebServer.start (JettyWebServer.java:16)spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] по адресу org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer (ServletWebServerApplicationContext.java:300 2.0-Spring).2.RELEASE.jar! /: 2.0.2.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh (ServletWebServerApplicationContext.java:162) ~ [spring-boot-2.0.2R.jar! /: 2.0.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:546) ~ [spring-context-4.3.12.RELEASE.jar! /: 4.3.12.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:140) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.SpringApplication.refresh (SpringApplication.java:759) [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:327) [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1255) [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1243) [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в com.focusvq.fts.spring.Application.main (Application.java:17) [classes! /: 1.0] at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [?: 1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [?: 1.8.0_101] at sun.reflect..lang.reflect.Method.invoke (Method.java:498) ~ [?: 1.8.0_101] at org.springframework.boot.loader.MainMethodRunner.run (MainMethodRunner.java:48) [fts-data-1.0.war: 1.0] в org.springframework.boot.loader.Launcher.launch (Launcher.java:87) [fts-data-1.0.war: 1.0] в org.springframework.boot.loader.Launcher.launch (Launcher.java:50) [fts-data-1.0.war: 1.0] в org.springframework.boot.loader.WarLauncher.main (WarLauncher.java:58) [fts-data-1.0.war: 1.0] Причина: javax.servlet.ServletException: dispatcherServlet @ 7ef5559e == org.springframework.web.servlet.DispatcherServlet, jsp = ноль, order = -1, inst = false в org.eclipse.jetty.servlet.ServletHolder.initServlet (ServletHolder.jpg).jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] at org.eclipse.jetty.servlet.ServletHolder.initialize (ServletHolder.java:427) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] в org.eclipse.jetty.servlet.ServletHandler.initialize (ServletHandler.java:760) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] по адресу org.springframework.boot.web.embedded.jetty.JettyEmbeddedWebAppContext $ JettyEmbeddedServletHandler.deferredInitialize (JettyEmbedded ~ Spring.web: spring.web:2.0.2.RELEASE.jar /: 2.0.2.RELEASE]на org.springframework.boot.web.embedded.jetty.JettyEmbeddedWebAppContext.deferredInitialize (JettyEmbeddedWebAppContext.java:36) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASEf] на org.sprboot.web.embedded.jetty.JettyWebServer.handleDeferredInitialize (JettyWebServer.java:209) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.web.embedded.jetty.JettyWebServer.start (JettyWebServer.java:141) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] ... еще 18 причин: org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping ': не удалось инициализировать bean-компонент;вложенным исключением является java.lang.NoSuchMethodError: org.springframework.web.servlet.handler.AbstractHandlerMapping.obtainApplicationContext () Lorg / springframework / context / ApplicationContext;at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:587) ~ [spring-beans-5.0.6.RELEASE.jar! /: 5.0.6.RemeRencefactory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:501) ~ [spring-beans-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в орг.(AbstractAutowireCapableBeanFactory.java:303) ~ [spring-beans-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.DispatcherServlet.createDefaultStrategy (DispatcherServlet.java:8)spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.DispatcherServlet.getDefaultStrategies (DispatcherServlet.java:847) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.initHandlerMappings (DispatcherServlet.java:606) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.initStrategies (DispatcherServlet.java:501) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.onRefresh (DispatcherServlet.java:490) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext (FrameworkServlet.java:561) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.FrameworkServlet.initSerjervlet (499) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] на org.springframework.web.servlet.HttpServletBean.init (HttpServletBean.java:172) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] на javax.servlet.GenericServlet.init (GenericServlet.java:244) ~ [javax.servlet-api-3.1.0.jar! /: 3.1.0]в org.eclipse.jetty.servlet.ServletHolder.initServlet (ServletHolder.java:670) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] в org.eclipse.jetty.servlet.ServletHolder.initialize (ServletHolder.java:427) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] в org.eclipse.jetty.servlet.ServletHandler.initialize (ServletHandler.java: 760) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] в org.springframework.boot.web.embedded.jetty.JettyEmbeddedWebAppContext $ JettyEmbeddedServletHandler.deferredInmbte) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.web.embedded.jetty.JettyEmbeddedWebAppContext.deferredInitialize (JettyEmbeddedWebAppContext.java:36) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.web.embedded.jetty.JettyWebServer.handleDeferredInitialize (JettyWebServer.java:209) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] at org.springframework.boot.web.embedded.jetty.JettyWebServer.start (JettyWebServer.java:141) ~ [spring-boot-2.0.2.RELEASE.jar!/:2.0.2.RELEASE] ... еще 18Вызывается: java.lang.NoSuchMethodError: org.springframework.web.servlet.handler.AbstractHandlerMapping.obtainApplicationContext () Lorg / springframework / context / ApplicationContext; at org.springframework.web.servlet.handler.AbstractHandlerMapping.detectMappedInterceptors (AbstractHandlerMapping.java:269) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.handler.AbstractHandlerMapping.initApplicationContext (AbstractHandlerMapping.java:243) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] at org.springframework.web.servlet.handler.AbstractDetectingUrlHandlerMapping.initApplicationContext (AbstractDetectingUrlHandlerMapping.java:58) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.context.support.ApplicationObjectSupport.initApplicationContext (ApplicationObjectSupport.java:120) ~ [spring-context-4.3.12.RELEASE.jar! /: 4.3.12.RELEASE] в org.springframework.web.context.support.WebApplicationObjectSupport.initApplicationContext (WebApplicationObjectSupport.java:77) ~ [spring-web-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.context.support.ApplicationObjectSupport.setApplicationContext (ApplicationObjectSupport.java:74) ~ [spring-context-4.3.12.RELEASE.jar! /: 4.3.12.RELEASE] в org.springframework.context.support.ApplicationContextAwareProcessor.invokeAwareInterfaces (ApplicationContextAwareProcessor.java:121) ~ [spring-context-4.3.12.RELEASE.jar! /: 4.3.12.RELEASE] в org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization (ApplicationContextAwareProcessor.java:97) ~ [spring-context-4.3.12.RELEASE.jar! /: 4.3.12.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization (AbstractAutowireCapableBeanFactory.java:422) ~ [spring-beans-5.0.6.RELEASE.jar! at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1698) ~ [spring-beans-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:579) ~ [spring-beans-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:501) ~ [spring-beans-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:303) ~ [spring-beans-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.DispatcherServlet.createDefaultStrategy (DispatcherServlet.java:879) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.DispatcherServlet.getDefaultStrategies (DispatcherServlet.java:847) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.DispatcherServlet.initHandlerMappings (DispatcherServlet.java:606) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.DispatcherServlet.initStrategies (DispatcherServlet.java:501) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.DispatcherServlet.onRefresh (DispatcherServlet.java:490) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext (FrameworkServlet.java:561) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.FrameworkServlet.initServletBean (FrameworkServlet.java:499) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE] в org.springframework.web.servlet.HttpServletBean.init (HttpServletBean.java:172) ~ [spring-webmvc-5.0.6.RELEASE.jar! /: 5.0.6.RELEASE]at javax.servlet.GenericServlet.init (GenericServlet.java:244) ~ [javax.servlet-api-3.1.0.jar! /: 3.1.0] at org.eclipse.jetty.servlet.ServletHolder.initServlet (ServletHolder.java:670) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] at org.eclipse.jetty.servlet.ServletHolder.initialize (ServletHolder.java:427) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] at org.eclipse.jetty.servlet.ServletHandler.initialize (ServletHandler.java:760) ~ [jetty-servlet-9.4.10.v20180503.jar! /: 9.4.10.v20180503] at org.springframework.boot.web.embedded.jetty.JettyEmbeddedWebAppContext $ JettyEmbeddedServletHandler.deferredInitialize (JettyEmbeddedWebAppContext.java:46) ~ [spring-boot-2.0.2.RELEASE.jar!:: at org.springframework.boot.web.embedded.jetty.JettyEmbeddedWebAppContext.deferredInitialize (JettyEmbeddedWebAppContext.java:36) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.web.embedded.jetty.JettyWebServer.handleDeferredInitialize (JettyWebServer.java:209) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] в org.springframework.boot.web.embedded.jetty.JettyWebServer.start (JettyWebServer.java:141) ~ [spring-boot-2.0.2.RELEASE.jar! /: 2.0.2.RELEASE] ... еще 18

Это загружаемая версия 5.0.6.RELEASE из org.springframework.web.servlet.handler.AbstractHandlerMapping, которая действительно не имеет obtainApplicationContext метода.

Мне пришлось отключить MongoAutoConfiguration и WebMvcAutoConfiguration, чтобы добраться до этой точки, но отключение EmbeddedWebServerFactoryCustomizerAutoConfiguration, похоже, не помогает. Кто-нибудь может пролить свет на то, где я могу быть не прав?

1 Ответ

0 голосов
/ 12 мая 2018

Обнаружена проблема - метод унаследован от org.springframework.context.support.ApplicationObjectSupport в пакете контекста весны, более ранняя версия которого у меня была.тьфу

...