Rest Webservice:参数

时间:2016-06-29 13:19:27

标签: java web-services rest jersey-2.0

您好我正在尝试构建一个REST服务,这是我的休息方法

@POST
@Path("/updateDocument/{id}")
@Consumes("multipart/form-data")
public Response updateDocument(@FormDataParam("doc") InputStream documentStream,@FormDataParam("doc") FormDataContentDisposition header, @FormDataParam("xmlData") String xmlMetaData,@PathParam("id") String docId) {
    logger.info("Inside DocumentEndpointImpl::updateDocument");
    logger.info("XML Recived"+xmlMetaData);
    logger.info("DOCID:"+docId);
    Response response=null;
    try {
        if(documentStream==null)
        {
            logger.info("Document stream is null");
        }
        else
        {               
            byte[] documentBytes=IOUtils.toByteArray(documentStream);
            this.documentTrigger.updateDocument(documentBytes, xmlMetaData, docId);
            writeImage(documentBytes);
        }
    } catch (IOException e) {
        logger.error(e.getMessage(),e);
    }
    finally
    {
        if(documentStream!=null){
            try {
                documentStream.close();
            } catch (IOException e) {
                logger.error(e.getMessage(),e);
            }
        }
    }
    return response;
}

我正在尝试上传一个文件以及一个以上的XML数据。 为此我使用Form-data,因此content-type是multipart \ form-data

Below is my POST request as extracted from POSTMAN

POST /rs/document/updateDocument/1 HTTP/1.1
Host: localhost:7000
Cache-Control: no-cache
Postman-Token: efaf61b8-1eb5-9657-17f5-ca877c3100a9
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="doc"; filename=""
Content-Type: 


----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="xmlData"

a
----WebKitFormBoundary7MA4YWxkTrZu0gW

但我得到的数据内容(这是文件)到xmlMetaData,在documentStream中有0个字节来了(我把它转换成字节数组后找到了它)

在做了随机测试后,我发现无论我在post请求中给出的值(在上面的案例文件中)都插入到xmlMetaData中,而且没有任何内容出现在documentStream中。

如果我有任何错误,请告诉我。如果需要更多代码,请告诉我 邮差的截图 enter image description here

0 个答案:

没有答案