在 Spring 中,我想让图像显示在我的浏览器上。该图像位于我的主要项目中,即
> myproject
- src
- target
- img.png
这意味着 img.png 位于根目录中,因此我不提供任何路径,但它返回一个NullPointerException
. 我尝试在 src 中添加图像,我将路径更改为src\img.png
但仍然给了 NPE。
请注意,这个项目使用的是 Maven。
堆栈跟踪:
java.lang.NullPointerException: null
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:462) ~[commons-io-2.4.jar:2.4]
这是我使用的代码:
InputStream in = DataService.class.getResourceAsStream("img.png");
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
result.setData(new ResponseEntity<byte[]>(IOUtils.toByteArray(in), headers, HttpStatus.CREATED));
对这个问题的评论被标记为关闭:
- 这个问题与编程有关,因为 API getResourceAsStream说:
如果没有找到具有此名称的资源,则返回 URL 对象或 null
null
即使我尝试添加img.png
到不同的位置,我的代码也会返回。
- 这个问题不是这个问题的重复:getResourceAsStream() is always return null
该问题的答案说该文件必须与this
该问题位于同一目录中,即使我将图像添加到类所在的同一位置DataService
,它也不起作用。