Почему spring-boot-3 дает javax.servlet.http.HttpServletRequest ClassNotFoundException

Когда я запускал spring-boot-2.7, проблем не было. Однако, когда я изменил код и адаптировал его к spring-boot-3.0, возникло java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest.

Может ли кто-нибудь помочь мне загрузить исходный код и запустить его на вашем компьютере? После запуска и нажатия «Войти через Facebook» вы увидите исключение. https://github.com/chuangtc/spring-boot-3.0-security-social-login

Я попытался добавить сервлет jarkarta API 6.0, но исключение все еще существует.

Как сделать движок для футбольного матча? (простой вариант)
Как сделать движок для футбольного матча? (простой вариант)
Футбол. Для многих людей, живущих на земле, эта игра - больше, чем просто спорт. И эти люди всегда мечтают стать футболистом или менеджером. Но, к...
Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
Лучшая компания по разработке спортивных приложений
Лучшая компания по разработке спортивных приложений
Ищете лучшую компанию по разработке спортивных приложений? Этот список, несомненно, облегчит вашу работу!
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Что такое Java 8 Streams API? Java 8 Stream API
Деревья поиска (Алгоритм4 Заметки к учебнику)
Деревья поиска (Алгоритм4 Заметки к учебнику)
(1) Двоичные деревья поиска: среднее lgN, наихудшее N для вставки и поиска.
1
0
366
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не нужно добавлять jakarta servlet api 6.0 в файл pom.xml. Согласно документации здесь, он уже включен.

В вашем коде, который использует javax.servlet.http.HttpServletRequest, вам нужно изменить javax на jakarta.

Таким образом, вся строка будет выглядеть примерно так: import jakarta.servlet.http.HttpServletRequest

Я сталкивался с этой ошибкой и раньше, когда обновлял свой сервис, и решил ее таким образом. Может быть, вы можете попробовать это.

[РЕДАКТИРОВАТЬ]

Я вижу, что одна из ваших зависимостей использует javax.servlet: https://mvnrepository.com/artifact/org.springframework.social/spring-social-facebook/2.0.3.RELEASE

И после этого github кажется, что эти пакеты больше не поддерживаются и не архивируются, поэтому, вероятно, они не обновляются для Spring Boot 3.

Я бы порекомендовал найти другие способы работы над социальным входом для Facebook, может быть, вы можете попробовать этот способ?

Https://www.codejava.net/frameworks/spring-boot/social-login-with-facebook-example

В моем коде нет servlet.http.HttpServletRequest

Jason Chuang 11.01.2023 02:33

Я проверил ваш исходный код и думаю, что эта зависимость использует javax.servlet: mvnrepository.com/artifact/org.springframework.social/… Provided Dependency показывает javax.servlet, поэтому при запуске приложений будет использоваться эта зависимость.

Sivvie Lim 11.01.2023 02:45

Спасибо за ваше предложение. Я заставил его работать для spring-boot-3.0 chuangtc.com/Java/spring-boot-30-facebook-login.php

Jason Chuang 11.01.2023 15:11

Я рад, что это помогает! Если все в порядке, пожалуйста, отметьте это как ответ :)

Sivvie Lim 18.01.2023 03:35

Спасенный Первомай! Я бы никогда не догадался об этом. Но вам нужно включить jakarta.servlet-api.

Harry Developer 02.02.2023 20:45

Другие вопросы по теме