之前转过一篇java中获得资源文件的方法,当时直接拿来JUnit了一下,果然可行
结果放在web应用中却失效了。。。。这让我一时郁闷了很久
之后终于找到了解决办法,由于我一开始加载资源文件的时候直接使用的Class.class.getResourceAsStream(path),在直接运行java类的时候这个路径会是当前运行的java的路径,这个没错
不过在web应用中这个路径就会变成null,我不知道是为什么,可能是tomcat动了手脚。于是尝试把Class换成了类自身,也就是要用getResourceAsStream这个方法的方法的类的class,我是在自定义的Util类中调用的,就换成了Util.class.getResourceAsStream(path),好了问题解决。如果方法是非静态的,推荐使用getClass().getResourceAsStream(path),这样就更加灵活了,即使类名改变也不需要改代码了。
本文介绍了解决Java中web应用资源文件加载失败的问题。通过对比直接运行Java类与在web环境中加载资源的不同,给出了有效的解决方案:使用Util.class或getClass()方法进行资源定位。
1368

被折叠的 条评论
为什么被折叠?



