0
我在Eclipse中創建了動態Web項目並將其添加到ear項目中。在wildfly8上部署war文件後找不到資源文件
圖片資源被放置在SRC \資源\
代碼中使用資源:
@GET
@Path("bank")
@Produces("application/json")
public String getBank(@Context HttpHeaders headers) {
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("/resources/alfa.png").getFile());
String base64 = Utility.getBase64(file);
return "{\"icon\":\"" + base64 + "\"}";
}
在調試它的確定。
當ear部署代碼拋出異常時: java.io.FileNotFoundException:C:\ apps \ wildfly-8.2.0.Final \ bin \ content \ TimerService.ear \ timer.war \ WEB-INF \ classes \ resources \ alfa.png
所有資源都存在於包含在ear-file中的war文件中。
出了什麼問題?
不能引用類路徑資源java.o.File對象,因爲他們往往會不存在的文件系統不同的文件系統對象。修改Utility.getBase64來取代java.io.InputStream。 –
查看[getResourceAsStream()vs FileInputStream](http://stackoverflow.com/questions/2308188/getresourceasstream-vs-fileinputstream)中的所有答案以獲取更多信息。我相信你的問題是一個騙局,但我找不到一個好匹配 –
謝謝史蒂夫。 getResourceAsStream()是解決方案。 –