【发布时间】:2012-08-24 21:14:59
【问题描述】:
我正在尝试在 JAX-RS Web 服务中返回图像。我可以通过返回 FileInputStream 来成功完成这项工作,但我更愿意避免为每个请求创建一个 File。
我正在使用 Apache CXF 和 Jackson(所有其他资源方法都生成 application/json)。
代码如下:
@GET
@Produces("image/png")
public Response getQrCode(@QueryParam("qrtext") String qrtext) {
ByteArrayOutputStream out = QRCode.from(qrtext).to(ImageType.PNG).stream();
return Response.ok(out).build();
}
不幸的是,这产生了可怕的:
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor:376 - 没有消息 已找到响应类 ByteArrayOutputStream 的正文编写器。
Here's 一个类似帖子的链接,但它没有提到我遇到的“没有消息正文作者”问题。
对于如何处理此问题的任何想法,我将不胜感激。谢谢!
【问题讨论】:
-
为什么不直接返回流而不是将其包装在响应中?