Вопрос по oracle, jasper-reports, java – Как просмотреть изображение из столбца BLOB-объектов в Oracle с помощью JasperReports?

4

Я попытался определить элемент изображения в макете отчета и задать тип java.io.Inputstream, но это не сработало, также я попытался установить значение java.awt.Image и ни один из них не работает, исключение, которое я получаю, -

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.awt.Image

или же

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.io.InputStream

Я также пытался гуглить, но в результате получаю то, что я делаю сейчас.

Спасибо за вашу помощь.

Ваш Ответ

2   ответа
2

как вы вызываете BLOB-объект, чтобы встроить изображение в код отчета ...

Use blob.getBinaryStream(). Convert the stream using javax.imageio.ImageIO.read( InputStream ).

Например:

javax.imageio.ImageIO.read( blob.getBinaryStream() )

Это вернет экземплярBufferedImageкакие подклассыjava.awt.Imageи должен быть подходящим объектом для встраивания в отчет.

blob переменная, показанная в примере, должна будет использовать соответствующую переменную из отчета (которая представляет данные из нужного столбца).

Смотрите также:

https://forums.oracle.com/forums/thread.jspa?threadID=2081381
Спасибо, это просто работает для меня. Первоначально я передавал BLOB-объект в параметр отчета без какого-либо преобразования типов или потокового преобразования. Openmindeo
0
InputStream is = new ByteArrayInputStream((byte[]) yourBlobData);
myImage = new DefaultStreamedContent(is, "image/png");

<p:graphicImage value="#{controller.myImage}" style="width:200px;width:500px" />

Похожие вопросы