Когда я запускал 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, но исключение все еще существует.
Вам не нужно добавлять 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
Я проверил ваш исходный код и думаю, что эта зависимость использует javax.servlet: mvnrepository.com/artifact/org.springframework.social/… Provided Dependency показывает javax.servlet, поэтому при запуске приложений будет использоваться эта зависимость.
Спасибо за ваше предложение. Я заставил его работать для spring-boot-3.0 chuangtc.com/Java/spring-boot-30-facebook-login.php
Я рад, что это помогает! Если все в порядке, пожалуйста, отметьте это как ответ :)
Спасенный Первомай! Я бы никогда не догадался об этом. Но вам нужно включить jakarta.servlet-api.
В моем коде нет servlet.http.HttpServletRequest