我不认为在REST服务中返回图像数据是一个好主意。它占用了应用程序服务器的内存和IO带宽。最好将任务委派给针对这种传输进行了优化的适当的Web服务器。您可以通过将重定向发送到图像资源(作为带有图像URI的HTTP
302响应)来完成。当然,这假定您的图像是作为Web内容排列的。
话虽如此,如果您确定确实需要从Web服务传输图像数据,则可以使用以下(伪)代码进行传输:
@Path("/whatever")@Produces("image/png")public Response getFullImage(...) { BufferedImage image = ...; ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(image, "png", baos); byte[] imageData = baos.toByteArray(); // uncomment line below to send non-streamed // return Response.ok(imageData).build(); // uncomment line below to send streamed // return Response.ok(new ByteArrayInputStream(imageData)).build();}添加异常处理等。



