春には、画像をブラウザに表示したいと考えています。画像は私のメインプロジェクトにあります
> myproject
- src
- target
- img.png
これは、 img.png がルートにあることを意味するため、パスを指定しませんが、.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() は常に null を返します
その質問の答えは、ファイルは同じディレクトリにある必要があると言っていますthis
が、この質問では、クラスがあったのと同じ場所に画像を追加したにもかかわらず、DataService
機能しませんでした。