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下创建一个文件夹
    idea java.io.IOException: Resource [classpath:shiro.ini] could not be found._第1张图片
  • 将创建好的文件夹mark as resources
    idea java.io.IOException: Resource [classpath:shiro.ini] could not be found._第2张图片
  • 然后将资源属性文件(log4j.properties shiro.in)放入这个文件夹
    idea java.io.IOException: Resource [classpath:shiro.ini] could not be found._第3张图片

在运行就会不会提示报错。

总结一下 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 http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

解决办法:https://blog.csdn.net/hj1997a/article/details/83051770

你可能感兴趣的:(shiro学习)