我使用RESTeasy提供此服务:
@GET
@Path("/{name}")
@Produces("image/jpeg")
public BufferedImage get(@PathParam("name") String name) {
Monitor m = Monitor.getMonitor(name);
if (m == null) {
return null;
}
return m.getImage();
}
然后我得到了请求
Could not find MessageBodyWriter for response object of type: java.awt.image.BufferedImage of media type: image/jpeg
是否有任何“直接方法”将图像输入到响应中?
感谢@Robert的指示。这里有工作代码:
@GET
@Path("/{name}")
@Produces("image/jpeg")
public byte[] get(@PathParam("name") String name) {
Monitor m = Monitor.getMonitor(name);
if (m == null) {
return null;
}
ByteArrayOutputStream bo = new ByteArrayOutputStream(2048);
try {
ImageIO.write(m.getImage(),"jpeg",bo);
} catch (IOException ex) {
return null;
}
return bo.toByteArray();
}
答案 0 :(得分:8)
你应该尝试
BufferedImage
编码为JPG。看看课程javax.imageio.ImageIO
byte[]
java.awt.headless=true
启动的服务器上运行(即没有图形子系统)如果有效,请告诉我们,因为我不知道它是否会,现在不能自己尝试。