我在Eclipse中创建了动态Web项目并将其添加到ear项目中。
图片资源位于src \ resources \
代码使用资源:
@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-file中。
有什么问题?
答案 0 :(得分:0)
这样它应该可以工作
@GET
@Path("bank")
@Produces("application/json")
public String getBank(@Context final HttpServletRequest request) {
ClassLoader classLoader = request.getServletContext().getClassLoader();
File file = new File(classLoader.getResource("/resources/alfa.png").getFile());
String base64 = Utility.getBase64(file);
return "{\"icon\":\"" + base64 + "\"}";
}