【问题标题】:Load resource file outside jar在jar外加载资源文件
【发布时间】:2015-05-03 11:29:39
【问题描述】:

我创建了一个 jar,其中包含一个从我的 Web 应用程序的类路径加载外部资源文件的类。我的应用程序在树脂服务器上运行。我已经在 web-inf/lib 中部署了我的 jar,我的资源文件在 web-inf/classes 文件夹中。现在正在使用

访问资源文件

getClass().getResourceAsStream("/resource-name.json");

但是,当我运行应用程序时,它会引发空指针异常。谁能向我解释为什么我的类加载器无法在 web-inf/classes 文件夹中找到这个资源文件?我搜索了这个论坛,但在这里没有找到类似我的问题。

与往常一样,感谢您的回复并感谢您。

【问题讨论】:

    标签: web-applications jar classpath classloader web-inf


    【解决方案1】:

    要进行调查,首先尝试打印您的 ClassLoader 尝试加载类/资源的所有位置:

    ((URLClassLoader) getClass().getClassLoader()).getURLs();
    

    假设 Resign 的 ClassLoader 扩展了 URLClassLoader。它应该包含您的文件夹。

    【讨论】:

    • 谢谢Crazhack。你的小费有帮助。我将它标记为答案,因为它指导我解决了这个问题,web-inf/classes 确实在树脂的类路径中。该错误最终证明是我的资源文件命名不正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 2016-02-18
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多