«NoSuchMethodError getHttpServletMapping» после обновления весенней загрузки - PullRequest
0 голосов
/ 03 февраля 2020

Я обновился с springboot 2.1.3 до 2.2.0. Пока все работает нормально, но я заметил, что когда я делаю запрос на отдых, который возвращает 400, вместо получения ответа json я получаю ошибку:

[Tomcat].[localhost]           : Exception Processing ErrorPage[errorCode=0, location=/error]
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;

Самое смешное, что я получаю это только , когда я запускаю приложение из Intellij с использованием добавленного кота. (создайте профиль mvn с помощью «spring-boot: run»)

Итак,

  • С автономным tomcat, он отлично работает везде
  • Со встроенным tomcat и только если я начинаю с Intellij, я получаю эту ошибку.

Но я могу сделать то же самое из командной строки с

mvn spring-boot: run

что тогда у меня нет ошибки ?! Как и предлагалось в другом посте, я обновил свой IntelliJ до последней версии, но это не помогло

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Я исправил проблему.

Изменение свойства tomcat.version не помогло, поэтому я опустил его и добавил в child pom (трюк в том, что он не работает в parent пОМ). Также обратите внимание, что версия 2.2.4, а не 2.2.0

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <version>2.2.4.RELEASE</version>
    </dependency>
0 голосов
/ 03 февраля 2020

Я думаю, вам нужно обновить версию ur tomcat emdedded, существует несоответствие версий. Spring Boot 2.1.X использует Tomcat 9, который имеет Servlet API v4. Но Spring Boot Web 2.1.X по-прежнему включает Servlet API v3.1. ИЛИ Измените версию tomcat proprety

<properties> <tomcat.version>8.5.37</tomcat.version> <properties>

Примечание: свойство tomcat.version является обычным свойством Maven в вашем pom. xml. Просто добавьте tomcat.version в ваши существующие свойства Maven

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...