入力: 1. メンバ InputStream を持つクラス
public class Dateien {
...
private InputStream payload = null;
...
public InputStream getPayload() {
return payload;
}
public void setPayload(InputStream payload) {
this.payload = payload;
}
}
- ペイロードには、画像付きのストリーム (jpg またはその他の形式) が含まれます
テキスト フィールド (class=java.lang.String, expression=$F{file.payload}) を含む Jasper レポートでは、レポートに正しい文字列が表示されます
java.io.ByteArrayInputStream@6aa27760
しかし、レポートに画像フィールドを作成すると
(class=java.io.InputStream, expression=$F{file.payload})
例外が発生します
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/abc] threw exception [Request processing failed; nested exception is net.sf.jasperreports.engine.JRException: Image read failed.] with root cause net.sf.jasperreports.engine.JRException: Image read failed. at net.sf.jasperreports.engine.util.JRJdk14ImageReader.readImage(JRJdk14ImageReader.java:73)
問題を解決するにはどうすればよいですか?
ところで、ブラウザで HTTP 経由で画像ストリームを取得しようとしましたが、適切にレンダリングされた画像が表示されます。したがって、ストリームは問題なく、破損していないことがわかります。