如何关闭REST服务流?

super7egazi

我需要制作一个Java REST服务,该服务将返回输入流作为响应。我的问题是,在客户端收到整个流之后,我不知道如何关闭流。我正在使用Java和CXF。谢谢

@GET
@Path("/{uuid}")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getAttachmentByUuid(@PathParam("uuid")String uuid)
{
 //getting inputstream from AWS S3
 InpputSream is=getStreamFromS3(uuid);
 return Response.status(Response.Status.OK).entity(is).build();
 // will this "is" stream causes memory leak,, do I have to close it. Client side is not controlled by me
}
佩德罗夫

JAX-RS是使用Java Servlet实现的。在CXF的情况下,使用CXFServlet你流将使用被发送到客户端HttpServletResponse的Servlet接口的

public void doGet(HttpServletRequest request, HttpServletResponse response)

你不应该关闭一个流源HttpServletResponse),如果您尚未创建它。这是容器的责任,您可能会干扰请求的生命周期

另见是有必要关闭从HttpServletRequest中返回的输入流?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章