Java17和springboot3.0使用shiro報ClassNotFoundException的解決
環(huán)境:
- springboot 3.0.6
- java17
報錯信息:java.lang.ClassNotFoundException: javax.servlet.Filter
當我看到javax時,估摸著應該是部分類庫遷移到了jakarta造成的,但也不知道咋解決,最后在StackOverflow看到一篇回答,恍然大悟。
翻譯如下:
由于Spring Boot 3.0 使用了Servlet 5.0,而javax.servlet此時已經遷移到了jakarta.servlet中。Shiro已經提供了適配Servlet 5.0 的依賴包,使用<classifier>
標簽即可選取適配版本,不過部分Shiro包中仍嵌套依賴了一些沒有適配jakarta的依賴包,所以我們需要使用<exclude>
將其排除,再引入同版本的jakarta適配包,就像這樣做:
<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <classifier>jakarta</classifier> <version>1.11.0</version> <!-- 排除仍使用了javax.servlet的依賴 --> <exclusions> <exclusion> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> </exclusion> <exclusion> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入適配jakarta的依賴包 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <classifier>jakarta</classifier> <version>1.11.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <classifier>jakarta</classifier> <version>1.11.0</version> <exclusions> <exclusion> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> </exclusion> </exclusions> </dependency>
到此這篇關于Java17和springboot3.0使用shiro報ClassNotFoundException的解決的文章就介紹到這了,更多相關shiro報ClassNotFoundException內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
圖數(shù)據庫NebulaGraph的Java 數(shù)據解析實踐與指導詳解
這篇文章主要介紹了圖數(shù)據庫NebulaGraph的Java 數(shù)據解析實踐與指導詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04Spring?Boot?3.2.5集成mysql的詳細步驟記錄
作為一名Java開發(fā)者,我們經常需要在我們的應用程序中使用數(shù)據庫,在Spring Boot中集成數(shù)據庫是非常容易的,下面這篇文章主要給大家介紹了關于Spring?Boot?3.2.5集成mysql的詳細步驟,需要的朋友可以參考下2024-04-04springboot?使用websocket技術主動給前端發(fā)送消息的實現(xiàn)
這篇文章主要介紹了springboot?使用websocket技術主動給前端發(fā)送消息的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12淺談springmvc的DispatcherServlet分析
本篇文章主要介紹了淺談springmvc的DispatcherServlet分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09