Получить XML и запрос сущности REST - PullRequest
0 голосов
/ 04 октября 2019

У меня есть веб-служба Java REST с методом, подобным следующему:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.TEXT_PLAIN)
@Path("/send")
public Response sendStuff(Stuff stuff) {
    // do magic with stuff
    return Response.ok("OK.").build();
}

В целях отладки я бы хотел, чтобы отправленный XML был дополнительно к Stuff.

Теперь я могу маршалировать отправляемый объект вручную. Тогда я получу совершенно другой XML, в котором могут отсутствовать несколько элементов или атрибутов.

Или я могу внедрить XML и разобрать его сам, но это немного тупо, и я могу упустить такую ​​функциональность веб-сервиса, какперехватчики.

Есть ли лучший способ получить и XML, и Java-сущность от веб-службы JAX-RS?

1 Ответ

0 голосов
/ 07 октября 2019

Поскольку, похоже, нет правильного пути, я решил пойти с этим:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.TEXT_PLAIN)
@Path("/send")
public Response sendStuff(String xml) {
    Stuff stuff;

    try (ByteArrayInputStream inputXml = new ByteArrayInputStream(xml.getBytes(Charset.defaultCharset()))) {
        final JAXBContext context = JAXBContext.newInstance(Stuff.class);
        request = (Stuff) context.createUnmarshaller().unmarshal(inputXml);
    } catch (final JAXBException | IOException e) {
        return Response.status(400, e.getMessage()).build();
    }

    // do magic with stuff
    return Response.ok("OK.").build();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...