Я имею дело с веб-сервисом, которому необходимо вызвать метод «аутентификации» и вернуть возвращаемый токен в специальный заголовок, чтобы каждый раз выполнять следующую операцию. Кажется логичным попытаться сделать это в перехватчике CXF. Я бы видел, как это работает как
Объект клиента CXF, введенный в объект бизнес-логики. Объект BusinessLogic вызывает операцию A. Перехватчик определяет, что сначала должна быть вызвана операция B, и вызывает Op B, затем добавляет заголовок к исходному вызову A, а затем он является исходящим.
Очевидно, что имеет смысл делать это атомарно или потенциально рекурсивно (если Перехватчик знает, что вызовы Op B проходят). Ужасный, хакерский способ, которого я хотел бы избежать, состоял бы в том, чтобы Interceptor имел циклическую зависимость от службы. Я также хотел бы избежать уродливого хакерского способа по сути поставить два клиентских объекта и перехватить один, а другой - нет. Кажется, должен быть какой-то способ сделать это, и я действительно знаю, что в классе Service есть диспетчер методов, но я не знаю, как вызвать операцию, которая приведет к исходящему вызову.