我創造,需要一個SOAP頭,看起來像這樣一個.net SOAP服務的Groovy客戶端:使用CXF(實際上是GroovyWS),如何生成一個帶有文本節點的子節點的SOAP頭?
<soap:Header>
<HeaderInfo xmlns="http://foo.bar.com/ns">
<token>abc-unique-token</token>
</HeaderInfo>
</soap:Header>
我發現the faq for adding headers to CXF messages,它讓我幾乎沒有,但並不完全。他們給了選項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」,我不知道如何在那裏得到它。
是否有一些簡單的事情可以傳遞給Header構造函數來創建該節點?
A separate post談到了使用不同的技術,但是當我嘗試使用它時,會在SoapFactory的周圍引發錯誤。
我發現的其他許多東西都需要用一堆附加代碼來創建擴展AbstractPhaseInterceptor類的東西,當我想要的東西太近時:)。