簡體   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