Я использую spring-ws для веб-службы и не могу понять, как вернуть разные ответы на один и тот же начальный запрос. Скажем только, что я получаю определенный тип запроса, мы назовем его FindGasRequest. Теперь у меня уже правильно настроено сопоставление конечных точек, поэтому, когда приходит FindGasRequest, оно сопоставляется с правильной конечной точкой, а затем я выполняю некоторую бизнес-логику и затем возвращаю FindGasResponse.
Вот мой вопрос. Скажем, я получил FindGasRequest, а затем в своей бизнес-логике я определяю, что вместо возврата FindGasResponse я хочу вернуть ListGasStationsResponse. Как бы я это сделал, если мой метод, помеченный @PayloadRoot, ожидает FindGasResponse? Я думаю, как я могу изменить полезную нагрузку на что-то другое?
У меня есть проверка ошибок, настроенная так, что я могу выдать исключение, и оно вернет обработчик FindGasErrorResponse и обработчик исключений. Поэтому моей первой мыслью было сделать что-то похожее, но было бы довольно глупо выдавать исключение, когда не было ошибок.