簡體   English   中英

剛剛從Spring Boot 2.7.4升級到Spring Boot 3.0.0,導致報錯 Caused by: java.lang.NoClassDefFoundError: javax.servlet.Filter

[英]Just upgraded from Spring Boot 2.7.4 to Spring Boot 3.0.0, caused error Caused by: java.lang.NoClassDefFoundError: javax.servlet.Filter

將應用程序從 Spring 2.7.4 升級到 3.0.0 嘗試運行時出現以下異常

java.lang.IllegalStateException: Failed to introspect Class [org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@eaa1a4da]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483)
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360)
    at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417)


Caused by: java.lang.NoClassDefFoundError: javax.servlet.Filter
    at java.base/java.lang.Class.getDeclaredMethodsImpl(Native Method)
    at java.base/java.lang.Class.getDeclaredMethods(Class.java:1180)
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465)

誰能幫我解決這個問題?

Spring-Boot 3.0 的發行說明指出

...

Spring Boot 3.0 已將所有依賴項從 Java EE 遷移到 Jakarta EE API。 盡可能選擇 Jakarta EE 10 兼容依賴項,包括:

...

  • 雅加達 Servlet 6.0

...

因此,導入從javax.servlet更改為jakarta.servlet

您應該將javax.*更改為jakarta.*在項目中適用的任何地方遷移到 Spring boot 3.0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM