繁体   English   中英

从wildfly +java中的类路径加载文件

[英]Load file from classpath in wildfly +java

我有一个简单的 jsp 应用程序。 我正在尝试在 src/xml 文件夹中加载一个 xml 文件。 我正在使用下面的代码,但得到 FileNotFound 异常。 请让我知道如何解决此问题?

Public static void load() {
Document doc = parseDoc(Thread.currentThread().getContextClassLoader().getResource("/xml/test.xml").getFile())
}

这是抛出 FileNotFound 异常,因为路径显示为/D:/Wildfly/bin/content/aap.war/web-inf/classes/xml/test.xml

尝试了几种不同的方法,但没有奏效。 请帮我

一般注意事项:

请写public而不是Public “src”不是加载某些东西的好文件夹。 “src”通常包含您的源代码(又名 *.java 文件) - 在文件编译并放入服务器后,您无法访问。

我的建议是,您将 XML 文件放入 jar 文件中。 所以 zip 您的 xml 文件夹并将其重命名为例如“xml.jar”。 我假设有一个文件夹 xml/test.xml。 这个 jar 文件作为 your.ear 或 .war 文件的一部分添加到类路径中。 部署后,您可以通过以下方式访问它:

Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/text.xml");

也不要直接阅读它,而是检查 null:

InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/text.xml);
if (stream == null) {
  throw new IllegalStateException("Resource 'xml/text.xml' not found on classpath");
}
//continue

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM