我正在使用cxf并处理文件上传,我将文件内容作为附件接收。在调试时,我看到文件有效负载存在于附件的dataHandler对象中,但是当我执行inputStream时,内容为null。
代码段:
@POST
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.MEDIA_TYPE_WILDCARD })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Path("/{catalogId}/file")
public CatalogResponse addFile(@Context HttpHeaders headers,
@PathParam("catalogId") String catalogId, @Multipart(value = "requestFile")Attachment file,
boolean autoLaunch) {
CatalogResponse res;
try {
InputStream is = file.getDataHandler().getInputStream();
buffer = new ByteArrayOutputStream();
int read = 0;
byte[] data = new byte[1024];
[enter image description here][1]while ((read = inputStream.read(data, 0, 1024)) != -1) {
buffer.write(data, 0, read);
}
buffer.flush();
}catch (Exception ex) {
//handle the exception
}
请查看以下数据。我看到输入流标记为' 已关闭'我想是导致这个问题的原因。