Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebSphereRESTUpload-don';t将上传的文件加载到内存中_Java_Rest_Websphere_Jax Ws_Apache Wink - Fatal编程技术网

Java WebSphereRESTUpload-don';t将上传的文件加载到内存中

Java WebSphereRESTUpload-don';t将上传的文件加载到内存中,java,rest,websphere,jax-ws,apache-wink,Java,Rest,Websphere,Jax Ws,Apache Wink,我已经根据IBM文章为文件上传配置了REST通道: 我用非常大的上传量测试了整个系统-大约100MB。我注意到WebSphereServer上的内存使用量急剧增加,比上传小文件要大得多。我假设这是由于上传后,在调用我的upload函数之前,上传的文件被放入内存 是否可以配置该工具,以便将大文件读入某个临时文件,而不是内存 或者是否有可能在REST Channel方法中直接成为传入的输入流 我正在使用Websphere 8.5和JAX-WS REST通道。根据找到的Apache Wink文档,Bu

我已经根据IBM文章为文件上传配置了REST通道:

我用非常大的上传量测试了整个系统-大约100MB。我注意到WebSphereServer上的内存使用量急剧增加,比上传小文件要大得多。我假设这是由于上传后,在调用我的
upload
函数之前,上传的文件被放入内存

是否可以配置该工具,以便将大文件读入某个临时文件,而不是内存

或者是否有可能在REST Channel方法中直接成为传入的输入流


我正在使用Websphere 8.5和JAX-WS REST通道。

根据找到的Apache Wink文档,BufferedInMultiPart似乎将完整的文件存储到内存中,因此尝试用InMultiPart替换BufferedInMultiPart:

import org.apache.wink.common.model.multipart.InMultiPart;

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Path("/upload")
public RestResult upload(InMultiPart bimp) {
    List<InPart> parts = new ArrayList<InPart>();
    while(bimp.hasNext()) {
        parts.add(bimp.next());
    }
    // ....
}
import org.apache.wink.common.model.multipart.InMultiPart;
@职位
@使用(MediaType.MULTIPART\u FORM\u数据)
@产生(MediaType.APPLICATION_JSON)
@路径(“/upload”)
公共RestResult上载(多部分bimp){
列表部件=新的ArrayList();
while(bimp.hasNext()){
parts.add(bimp.next());
}
// ....
}

是的,我想写这篇文章作为对那篇IBM文章的评论,但你需要IBM ID才能做到:)@donaudampfschiffreizeitfahrt如果你愿意,你仍然可以。这是这里的免费注册-还允许您参加developerWorks论坛。:-)
IOUtils.copy(part.getInputStream(), new NullOutputStream());
import org.apache.wink.common.model.multipart.InMultiPart;

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Path("/upload")
public RestResult upload(InMultiPart bimp) {
    List<InPart> parts = new ArrayList<InPart>();
    while(bimp.hasNext()) {
        parts.add(bimp.next());
    }
    // ....
}