我想上傳一個JPG文件和一個JSON序列化的Java對象。在我使用Apache CXF的服務器上,在客戶端上,我正在使用rest-assured進行集成測試。帶CXF的JAX-RS/rest-assured:處理多參數文件上傳
我的服務器代碼如下所示:
@POST
@Path("/document")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response storeTravelDocument(
@Context UriInfo uriInfo,
@Multipart(value = "document") JsonBean bean,
@Multipart(value = "image") InputStream pictureStream)
throws IOException
{}
我的客戶端代碼如下所示:
given().
multiPart("document", new File("./data/json.txt"), "application/json").
multiPart("image", new File("./data/image.txt"), "image/jpeg").
expect().
statusCode(Response.Status.CREATED.getStatusCode()).
when().
post("/document");
一切,當我讀了JSON部分從文件中第一行多工作正常。但是,當我想序列化json實例時,我遇到了問題。我嘗試了很多變種,但都沒有奏效。
我想這應該變種工作:客戶端
JsonBean json = new JsonBean();
json.setVal1("Value 1");
json.setVal2("Value 2");
given().
contentType("application/json").
formParam("document", json).
multiPart("image", new File("./data/image.txt"), "image/jpeg").
...
和服務器
public Response storeTravelDocument(
@Context UriInfo uriInfo,
@FormParam(value = "document") JsonBean bean,
@Multipart(value = "image") InputStream pictureStream)
上卻沒有。誰能告訴我應該如何?
感謝您的幫助!嘗試之前(不是與JAXB,但沒有工作,你不能混用body和multiPart。它沒有工作的原因也可以是http://code.google.com/p/rest-assured/issues/詳細信息?id = 167我們將在下一個版本中看到rest-assured。 – ChrLipp 2012-04-26 14:05:01
運氣不好然後:(抱歉,我忍不住 – 2012-04-26 18:11:39
沒問題!謝謝! – ChrLipp 2012-04-27 05:39:05