JAX-RS是否支持输入流?

时间:2015-09-30 07:43:11

标签: java jax-rs

给出以下HTML:

__global__ void foo(void* data) {
    int blockContinueFlag;
    do {
        blockContinueFlag = 0;
        //some data manipulations...
        if(some predicate) {
            blockContinueFlag = true;
        }
        //some data manipulations...
    } while (__syncthreads_or(blockContinueFlag));
}

如果我的JAX-RS方法以:

开头
<form action="upload" method="post" enctype="multipart/form-data">
    Select a file : <input type="file" name="file" size="45" />
   <input type="submit" value="Upload" />
</form>

@POST @Path("upload") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response upload( @FormParam("file") InputStream uploadedInputStream) { ... } 是否会作为 Java EE API规范的一部分进行流式处理,而不是特定于实现的?那我可以上传1TB文件而不会炸掉堆?

我似乎无法找到任何表明它是标准的内容,甚至对uploadedInputStream的支持也是特定于实现的。

我能想到的唯一让它在app服务器上工作的是使用类似下面的servlet来显示上传的字节数。

@Consumes(MediaType.MULTIPART_FORM_DATA)

1 个答案:

答案 0 :(得分:1)

据我所知,多部分数据流被加载到磁盘然后为你包装。您是否可以直接向用户发送PUT个请求?它将使您可以直接访问来自客户端的输入流。我毫无问题地尝试了数GB的数据。

如果有人知道的话,请指正。