带有字符串的 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 contextIdHeader = new Header(new QName(CORE_NAMESPACE, "contextID"), contextID, new JAXBDataBinding(String.class));

相关内容

  • 没有找到相关文章

最新更新