栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

getResourceAsStream获取时报空指针异常

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

getResourceAsStream获取时报空指针异常

背景:

本人写了一个springboot+testng的项目,该项目需要通过mvn test命令跑起来,但是getResourceAsStream这个方法一直在报错,跑不起来

当时我的项目为了通过java -jar命令运行起来,且让配置动态化,所以propeties文件外移与src目录同层级

所以我的项目结构为:

properties目录下放置的是properties文件

resources目录下的放置的是我代码中需要读取的文件,即getResourceAsStream读取的资源文件

xml目录下放置的是我需要运行的用例的配置xml文件

问题点:

当我通过mvn test 命令运行时,在下面的代码中直接异常,测试无法继续进行

解决方式: idea中

通过网上搜索得到,这块获取资源获取不到,可能是因为项目中sources(源)配置不对,从file中进入project structure配置

可以通过选中后点击Sources,将你需要编译的目录添加到Source Folders

 

修改完成后,项目重新编译一下,然后运行就可以跑通了,但是也仅仅只是在idea中,真正这个项目在jenkins上运行的还是不OK的,然后我继续挖

jenkins上

通过网上搜索,我发现我们可以通过配置pom文件改变项目的Sources,主要用的就是build-helper-maven-plugin这个插件,我们可以在source标签中添加我们需要新增的source目录

 其实上面这一步走了,重新编译一下就没问题了的,但是我自己原先的操作为自己挖了一个坑,就是我先前在pom中配置了resources标签,就是下面这一坨配置,就是因为这个,导致了我打包的时候resources下面的文件一直出不来,特别绝望,想起来查这个问题还是同事提醒我把拿文件的地址打出来看看,然后我把拿文件的地址打印出来,然后进目录看了,才发现这个json下面的文件夹一直没生成出来。。。

拿出当前放置的文件目录地址的命令为:类名.class.getClassLoader().getResource("").getPath();

然后我把pom中这个resources配置拿掉,就ok了。折磨了我半天的问题,还是能力不够啊。记录一下。下次把先前做java -jar命令运行测试项目的过程记录一下

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号