java - 在 jersey 中使用 streamoutput 响应时,我已经刷新了一些输出后如何处理异常?

标签 java rest jersey

最近我在jersey中使用接口(interface)“StreamingOutput”流式传输我的json格式响应,例如:

@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test(){
    StreamingOutput stream = new StreamingOutput() {

        @Override
        public void write(OutputStream os) throws IOException,
        WebApplicationException {
            Writer writer = new BufferedWriter(new OutputStreamWriter(os));
                for( ...  loop ...) {
                    //response something immediatly
                    writer.write(somthing ...);
                writer.flush();
            }
        }
    };

    return Response.ok(stream).build();
}   

但是,如果在我“//立即响应某事”给客户之后,抛出了一些异常怎么办。

除了在部分正常响应之后等待特殊错误消息之外, 有什么方法可以处理这种情况吗??

最佳答案

如果在流式传输时出现错误,您几乎无能为力。您始终可以捕获异常,但无法还原已发送的响应。典型的情况是接收流的客户端突然变得不可用/中止下载。充其量你可以记录它。

关于java - 在 jersey 中使用 streamoutput 响应时,我已经刷新了一些输出后如何处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20514870/

相关文章:

java - 动态替换特定的 GUI 元素

java - JLabel 在显示 HTML 时垂直向下移动文本

java - 在 ROOT 下部署 webapp - index.html 不显示

java - 如何在 jersey Rest Webservice 中接受 json 数组输入

java - Grails 和 Java : Proper way to unmarshall Json from Grails in Java app

java - 使用 swagger UI 记录包装的 REST 响应

java - 设置 Imageview 的背景

java - restful 服务 URL 中的分号截断其后的字符

java - 创建一个与默认 Jetty 的 Jersey 注册行为相同的 ResourceConfig

java - Jersey 是否支持 JAX-RS 路径注释中的美元符号?