次のような SOAP ヘッダーを必要とする .net SOAP サービス用の Groovy クライアントを作成しています。
<soap:Header>
<HeaderInfo xmlns="http://foo.bar.com/ns">
<token>abc-unique-token</token>
</HeaderInfo>
</soap:Header>
CXF メッセージにヘッダーを追加するための FAQを見つけました。オプション 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」ノードには、「abc-unique-token」を囲む子「token」ノードがありません。そこに入れる方法がわかりません。
そのノードを作成するために Header コンストラクターに渡すことができる簡単なものはありますか?
別の投稿では、別の手法の使用について説明していますが、これを使用しようとすると、SoapFactory の周りでエラーがスローされます。
私が見つけた他のものの多くは、私が望むものが非常に近い場合、AbstractPhaseInterceptor クラスを拡張するものを作成する必要があります。