У меня есть webservice orchestrator, который вызывает несколько веб-сервисов. Для каждого вызова webservice я должен написать длинный код сопоставления перед вызовом службы нисходящего потока.Jaxb Marshalling Unmarshalling вместо Java Beans
EDIT: У меня есть wsdls для каждой из этих служб, и в настоящее время я сгенерировал классы с использованием jaxb. Ответы каждой из этих служб сохраняются в общем объекте, который затем передается на следующий вызов службы, где у меня есть трансформатор, который выбирает значения из этого общего объекта и заполняет DTO нисходящего запроса. Логика оркестровки выполняется на бизнес-уровне, прежде чем решать, какой веб-сервис необходимо вызвать. Максимальное количество элементов, отправленных в любой веб-сервис, составляет около 200. Некоторые из этих значений получены из входящего запроса, некоторые из них по умолчанию, а некоторые из них являются значениями из других вызовов веб-службы.
Я хочу уменьшить количество контрольных нулевых проверок и получить/установить код в моих классах сопоставления, не отрицательно влияя на текущую производительность.
Является ли Marshalling и UnMarshalling и использование инструментов Jaxb и XML для чтения и записи данных лучшим способом приблизиться к этому в моем сценарии?
В любом случае мой вызов веб-службы является запросом SOAP. Ява-бобы просто используются в этой отрасли только потому, что все ее используют?
Если маршаллинг/unmarshalling с jaxb не является жизнеспособной альтернативой, есть ли лучшие способы (с точки зрения производительности и многословия) решить эту проблему?
Я пробовал JXPath и Mapstruct, но писать код сопоставления или переопределять абстрактную фабрику так же утомительно с этими двумя.