学习servlet中遇到java.lang.NullPointerException:inStream parameter is null 解决办法

在学习servlet中

所遇到的报错信息

最终确定问题在于程序找不到配置文件

最开始我以为只要光标附在配置文件并按 Ctrl键 能点进去就以为着成功

但!!!!当我把这个问题解决后发现 还是会报图1的错误!!!!!!

 Ctrl后能点进去 是因为我把配置文件 从 src目录下移动到了resource目录下

在查找问题时,看到了这句话,分享给大家

链接在此:(92条消息) 一文理解class.getClassLoader().getResourceAsStream(file)和class.getResourceAsStream(file)区别_FeelTouch-CSDN博客_class.getresourceasstream

 为什么是classpath而不是src,因为当web项目运行时,IDE编译器会把src下的一些资源文件移至WEB-INF/classes,classPath目录其实就是这个classes目录。这个目录下放的一般是web项目运行时的class文件、资源文件(xml,properties...);

最终的解决办法,添加 getClassLoader()

 

至于原因,我也查了很多的博客,目前我的理解是:

若只是 .class.getResourceAsStream()

只是在src中寻找,但配置文件放在src中是不起作用的,需要放在resource中

.class.getClassLoader().getResourceAsStream()

是通过classpath中寻找的

理解的依据也就是我刚才圈出来的那句话

为什么是classpath而不是src,因为当web项目运行时,IDE编译器会把src下的一些资源文件移至WEB-INF/classes,classPath目录其实就是这个classes目录。这个目录下放的一般是web项目运行时的class文件、资源文件(xml,properties...);

若有表达不对的地方,望诸位能够提下你的看法,我感恩不尽!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值