带字符串的CXF Header元素

时间:2018-01-10 08:59:39

标签: java web-services soap cxf

我正在尝试使用org.apache.cxf.headers.Header构建一个简单的头元素(即contextID)

XML表示应该是:

<soapenv:Header>
  <contextID>someString</contextID>
</soapenv:Header>

我在拦截器中尝试这样:

String contextID = "someString";
List<Header> headers = message.getHeaders();
//this could be possibly wrong
Header contextIdHeader = new Header(new QName(CORE_NAMESPACE, "contextID"), contextID);
headers.add(contextIdHeader);
message.put(Header.HEADER_LIST, headers);

但我得到一个例外:

java.lang.ClassCastException:java.lang.String无法强制转换为org.w3c.dom.Element

我想,Header元素的构造是错误的。 这样做的正确方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

找到解决方案:

必须像这样创建Header元素

Header contextIdHeader = new Header(new QName(CORE_NAMESPACE, "contextID"), contextID, new JAXBDataBinding(String.class));