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()是解决方案。 –