2017-05-30 75 views
0

1)我想讀取放置在java資源文件夾中的xsd文件。無法讀取jboss服務器應用程序資源文件夾中的xsd文件

2)我們正在爲我們的應用程序使用JBoss服務器。

3)Document doc = docBuilder.parse(new File(classLoader.getResource(「Abc.xsd」)。getFile()));我得到以下異常 - C:\ dev \ jboss-eap-7.0 \ bin \ content \ batch.war \ WEB-INF \ lib \ common-1.0.5-SNAPSHOT.jar \ Abc。 xsd(系統找不到指定的路徑)。

5)它以某種方式在文件路徑前附加了C:\ dev \ jboss-eap-7.0 \ bin \。

任何人都可以請協助。

回答

0

您不需要使用文件系統路徑,而是使用classLoader.getResourceAsStream("abcd.xsd")。當然,您的abcd.xsd文件必須位於WAR文件classLoader的類路徑中,並且必須位於根目錄。 (對於該示例文件,WAR文件類的根級別或WAR文件classLoader可見的jar文件之一)。

要點如下:WAR文件ClassLoader是隔離的,WAR文件的類加載器加載的類和資源不直接來自WAR文件所在的文件系統路徑。

+0

我出現以下情況例外,當我使用的getResourceAsStream( 「abcd.xsd」) - 異常:C:\ dev的\ jboss的-EAP-7.0 \ BIN \ [email protected](該系統找不到指定的文件) 「 – user3932685

+0

」這是關於我告訴的classpath,所以檢查:1.你使用了什麼classLoader?2.哪裏是你調用它的類?3.它是否在WAR文件中?如果是這樣的話你必須使用它的classLoader,並且你的資源的第一個位置在WAR'WEB-INF/classes'或者WAR中的一個JAR文件中。如果你需要在WAR之外擁有你的資源,它可能是JBoss之一模塊:system,global或custom在'jboss-deployment-structure.xml'文件中定義爲WAR文件的依賴關係或資源。作爲資源,您可以將資源目錄的文件系統路徑定義爲're source-root'元素。 – Vadim

+0

謝謝......它與getResourceAsStream一起工作。 Document doc = docBuilder.parse(classLoader.getResourceAsStream(xsdFile)); – user3932685

相關問題