我正在将 Maven 项目更新为 Spring Boot 3 和 Java 21。这样做时,我在运行时收到此异常:
java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
at java.base/java.lang.Class.forName0(Native Method) ~[?:?]
at java.base/java.lang.Class.forName(Class.java:534) ~[?:?]
at java.base/java.lang.Class.forName(Class.java:513) ~[?:?]
at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) ~[?:?]
... 32 more
Wrapped by: java.lang.TypeNotPresentException: Type javax.servlet.http.HttpServletRequest not present
我没有在我的项目中使用
javax.servlet.http.HttpServletRequest
,所以我认为这是在一个过时的 JAR 中。我认为有一种方法可以运行 mvn dependency:tree 或 Eclipse/IJ 插件,显示每个依赖 JAR 使用的所有导入,这样我就可以看到 JAR xyz 执行此问题类型的导入并排除或更新它.
对于一般情况,我如何实现这一点 - 递归地查找我的项目作为依赖项引用的每个 JAR 的类?
我能够按如下方式完成此任务。