2016-06-20 1 views
0

Я работаю над созданием конечной точки Spring REST WS (должен быть открыт только один внешний URL-адрес). Клиент хочет, чтобы мы подтвердили (200 OK), как только мы получим запрос и обработаем его в фоновом режиме. Клиент может отправлять различные типы полезной нагрузки xml в тело запроса для разных запросов. Например: в одном запросе клиент может отправлять данные Employee для добавления в xml-полезную нагрузку, а в другом запросе они могут отправлять данные клиента для дальнейшей обработки.Spring Rest WS: Как обрабатывать множество полезных данных XML в одной конечной точке?

В простейшем решения, мы могли бы сделать:

  1. создать JAXB аннотированной POJOs (Заказчик, Сотрудник, расширяющая на общий абстрактный класс; например, RequestPayload или что-то) , соответствующая каждую возможную полезную нагрузку XML,
  2. Получить полезную нагрузку XML в качестве строки на контроллере, определить имя корневого элемента ("сотрудник или„клиент“...) и
  3. Используйте нашу unmarshaller (созданный с использованием JAXB) для преобразования XML-строки в экземпляр Employee/Customer POJO и сохраните эту ссылку в переменной 0PRequestPayload.

  4. делать дальше на стороне сервера обработки ..

Просто не уверен, если это элегантное решение ..

ли пружины обеспечивают любую функциональность/расширение WRT для MessageConverters, который позволил бы нам делать шаги 1-3 в чистом/элегантном стиле?

Заранее спасибо.

ответ

1

У вас проблема выглядит EIPContent-Based Router. Camel может помочь вам направить сообщения на разные конечные точки, исследуя тело сообщения «элегантным» способом и верблюжьей верблюжью верблюд.

Красота верблюда может отделить заботу, такую ​​как маршрутизация от вашей бизнес-логики, и вы можете добавить больше форматов сообщений позже и не повлиять на бизнес-логику.

+0

Спасибо за ответ Raymond, но я действительно искал что-то подобное в рамках Spring. – ktewari

 Смежные вопросы

  • Нет связанных вопросов^_^