首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么使用CXF RSET service return图片

2012-12-26 
如何使用CXF RSET service return图片我前两天遇到一个棘手的问题,需求是要求在浏览器上面直接用GET方法调

如何使用CXF RSET service return图片

我前两天遇到一个棘手的问题,需求是要求在浏览器上面直接用GET方法调用我的service程序可以看到图片。如http://xxxx.xxx/read/image/4_pic.jpg
所以这就要求我在service的返回值上面要做成一个return InputStream..于是我上网搜索,看到http://www.romanlogic.com/rest-service-for-images-using-apache-cxf/ 这篇文章是讲如何返回image的,所以写下了如下的代码

@GET@Path("/{name}")@Produces("image/jpg")public InputStream readImage(@PathParam("name") String name ){log.debug("Try to load image [name:"+name+" ]from DB");log.debug("begin transaction");imageDAO.beginTransaction();byte[] b;InputStream is = null;try {b = imageProcessService.loadImage(name);log.debug("commit transaction");imageDAO.commitTransaction();is = new ByteArrayInputStream(b);return is;}  catch (Throwable e) {log.warn(e);log.debug("rollback transaction");imageDAO.rollbackTransaction();return null;} }


但问题是,每当我调用这个API的时候,机器一直发出很奇怪的叫声,估计是内存在那里叫。
于是我怀疑了其中各个环节,最后才发现原来System.out.println("\007");可以让机器发出蜂鸣般的叫声。而CXF自身的LOG会把response 的payload内容log下来,所以我猜测图片的二进制信息中时不时的会有'\007',而log的同时,机器也不停的发出蜂鸣般的叫声,而机器不死机,叫完就没事了。。。
于是我最后把cxf 的那段log关了,于是,一切安好。。。问题解决。。。可喜可贺。。。

热点排行