nim*_*o23 1 wildfly jakarta-ee
我正在使用 Java-EE (Wildfly v.17)
我想访问位于WEB-INF/classes/config.txt.
我知道一种解决方案servletContext。
但是,我想知道为什么一些常见的东西不起作用:
// prints: file:/Users/test/server/wildfly-17.0.1.Final/modules/system/layers/base/org/jboss/as/ejb3/main/timers/
// why does this point to "ejb3/main/timers" ???
log.info(User.class.getResource("/").toExternalForm());
Run Code Online (Sandbox Code Playgroud)
这些都不起作用,我总是得到java.lang.NullPointerException(找不到文件,但文件在那里!)
var resource = User.class.getResource("/config.txt");
var resource = User.class.getResource("/WEB-INF/classes/config.txt")
var resource = User.class.getResource("config.txt")
var resource = getClass().getResource("config.txt")
var resource = Thread.currentThread().getContextClassLoader().getResource("config.txt")
Run Code Online (Sandbox Code Playgroud)
我如何在 Wildfly 中使用getResource()或getResourceAsStream()?
(或者我应该把它放在哪里config.txt才能使用getResource()?)
访问WEB-INF/classes/config.txt文件中数据的最简单方法是使用java.lang.Class.getResourceAsStream("/config.txt"),这已在您的第一个示例中介绍。
如果返回,null则该文件不存在。如果你正在使用Maven构建然后为此最常见的原因是放置config.txt在src/main/java目录中,而不是src/main/resources。
尝试使用java.lang.Class.getResource("/config.txt")将以失望告终,因为返回的 URL 可能包含一个难以使用或无法使用的方案,例如“jar://.. .”或“vfs://...”。您不能依赖 WildFly 为类加载器资源返回“file://..”样式的 URL。
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |