CXF Header 元素与字符串
CXF Header element with String
我正在尝试使用 org.apache.cxf.headers.Header
构建一个简单的 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 元素的构造是错误的。
正确的做法是什么?
谢谢!
找到解决方案:
Header 元素必须像这样创建
Header contextIdHeader = new Header(new QName(CORE_NAMESPACE, "contextID"), contextID, new JAXBDataBinding(String.class));
我正在尝试使用 org.apache.cxf.headers.Header
构建一个简单的 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 元素的构造是错误的。 正确的做法是什么?
谢谢!
找到解决方案:
Header 元素必须像这样创建
Header contextIdHeader = new Header(new QName(CORE_NAMESPACE, "contextID"), contextID, new JAXBDataBinding(String.class));