idea java.io.IOException: Resource [classpath:shiro.ini] could not be found.
shiro入門Quackstart例子除錯遇到的問題
報錯:
Exception in thread “main” org.apache.shiro.config.ConfigurationException: java.io.IOException: Resource [classpath:shiro.ini] could not be found.
at org.apache.shiro.config.Ini.loadFromPath(Ini.java:251)
at org.apache.shiro.config.Ini.fromResourcePath(Ini.java:234)
at org.apache.shiro.config.IniSecurityManagerFactory.(IniSecurityManagerFactory.java:69)
at shirotest.Quickstart.main(Quickstart.java:33)
Caused by: java.io.IOException: Resource [classpath:shiro.ini] could not be found.
at org.apache.shiro.io.ResourceUtils.getInputStreamForPath(ResourceUtils.java:139)
at org.apache.shiro.config.Ini.loadFromPath(Ini.java:249)
… 3 more
解決辦法:(再次說下用的idea開發環境)
- 在src下建立一個資料夾
- 將建立好的資料夾mark as resources
- 然後將資源屬性檔案(log4j.properties shiro.in)放入這個資料夾
在執行就會不會提示報錯。
總結一下 mark as Driectory 區別(官方文件手動谷歌翻譯)
1. Source roots
通過為此類別分配資料夾,您可以告訴IntelliJ IDEA此資料夾及其子資料夾包含應作為構建過程的一部分進行編譯的原始碼。
2. Test source roots
這些根類似於源根,但是用於測試的程式碼(例如用於單元測試)。通過測試原始檔夾,您可以將與測試相關的程式碼與生產程式碼分開。
通常,源和測試源的編譯結果放在不同的資料夾中。
3. Resource roots
適用於您的應用程式中使用的資原始檔(影象,各種配置XML和屬性檔案等)。
在構建過程中,資原始檔夾的所有內容將按原樣複製到輸出資料夾。
與源類似,您可以指定生成資源。您還可以指定應將資源複製到的輸出資料夾中的哪個資料夾。
4. Test resource roots
(或測試資原始檔夾;顯示為rootTestResourceIJ;僅在Java模組中可用)用於與測試源關聯的資原始檔。在所有其他方面,這些資料夾類似於資原始檔夾。
5. Excluded roots
為排除資料夾中的檔案提供了非常有限的編碼幫助。排除資料夾中包含的類不出現在程式碼完成建議列表中,對這些類的引用在編輯器中顯示為未解析。搜尋時,IntelliJ IDEA不會查詢排除的資料夾等。
但是會出現一個新的問題
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See
解決辦法:https://blog.csdn.net/hj1997a/article/details/83051770