Я создаю Groovy-клиент для службы .net SOAP, для которой требуется заголовок soap, который выглядит следующим образом:
<soap:Header>
<HeaderInfo xmlns="http://foo.bar.com/ns">
<token>abc-unique-token</token>
</HeaderInfo>
</soap:Header>
Я нашел часто задаваемый вопрос для добавления заголовков к сообщениям CXF , и он почти полностью привел меня туда, но не совсем. Пример, который они приводят для варианта 4, выглядит следующим образом:
List<Header> headers = new ArrayList<Header>()
Header header = new Header(new QName("http://foo.bar.com/ns", "HeaderInfo"),
"abc-unique-token", new JAXBDataBinding(String.class))
headers.add(header)
proxy.client.getRequestContext().put(Header.HEADER_LIST, headers)
Используя этот код, я могу заставить его сделать это:
<soap:Header>
<HeaderInfo xmlns="http://foo.bar.com/ns">
abc-unique-token
</HeaderInfo>
</soap:Header>
Но в узле "HeaderInfo" отсутствует дочерний узел "token" для окружения "abc-unique-token", и я не уверен, как его туда вставить.
Есть ли какая-то простая вещь, которую я могу передать конструктору Header для создания этого узла?
A отдельный пост говорит об использовании другой техники, но это выдает мне ошибки вокруг SoapFactory, когда я пытаюсь его использовать.
Многое из того, что я обнаружил, связано с необходимостью создания чего-то, расширяющего класс AbstractPhaseInterceptor с помощью набора дополнительного кода, когда то, что я хочу, так близко:).