Я хочу загрузить файл JPG и JSON-сериализованный Java-объект. На сервере я использую Apache CXF, на клиенте - интеграционное тестирование с rest-assured.JAX-RS с CXF/rest-sure: Обработка загрузки многофайлового файла
Мой код сервера выглядит следующим образом:
@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 часть из файла, как и в первой MULTIPART линии. Однако, когда я хочу сериализовать экземпляр 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, но не работал. Вы не можете смешивать тело с multiPart. Причина, по которой он не работает, также может быть http://code.google.com/p/rest-assured/issues/ detail? id = 167, который мы увидим в следующей версии покоя. – ChrLipp
Не повезло :(извините, что не смог помочь. –
Нет проблем! Спасибо в любом случае! – ChrLipp