包括 Soap Header - Apache CXF
Include Soap Header - Apache CXF
我尝试在 Apache CXF 文档
之后添加 header
List<Header> headers = new ArrayList<Header>();
Header dummyHeader = new Header(new QName("uri:org.apache.cxf", "dummy"), "decapitated",
new JAXBDataBinding(String.class));
headers.add(dummyHeader);
//server side:
context.getMessageContext().put(Header.HEADER_LIST, headers);
//client side:
((BindingProvider)proxy).getRequestContext().put(Header.HEADER_LIST, headers);
这会生成 header 格式
<SoapHeader>
<dummy xmlns="uri:org.apache.cxf.dummy>decapitated</dummy>
</SoapHeader>
我想达到的是
<SoapHeader>
<dummy xmlns="uri:org.apache.cxf.dummy>
<value>decapitated</value>
</dummy>
一个选项是创建一个 SOAPElement 并将其添加到 header,如下所示:
SOAPFactory sf = SOAPFactory.newInstance();
SOAPElement seqElement = sf.createElement(new QName("uri:org.apache.cxf","dummy"));
SOAPElement textElement = sf.createElement(new QName("uri:org.apache.cxf","value"));
textElement.addTextNode("decapitated");
seqElement.addChildElement(textElement);
SoapHeader dummyHeader = new SoapHeader(new QName("uri:org.apache.cxf","dummy"), seqElement);
我尝试在 Apache CXF 文档
之后添加 headerList<Header> headers = new ArrayList<Header>();
Header dummyHeader = new Header(new QName("uri:org.apache.cxf", "dummy"), "decapitated",
new JAXBDataBinding(String.class));
headers.add(dummyHeader);
//server side:
context.getMessageContext().put(Header.HEADER_LIST, headers);
//client side:
((BindingProvider)proxy).getRequestContext().put(Header.HEADER_LIST, headers);
这会生成 header 格式
<SoapHeader>
<dummy xmlns="uri:org.apache.cxf.dummy>decapitated</dummy>
</SoapHeader>
我想达到的是
<SoapHeader>
<dummy xmlns="uri:org.apache.cxf.dummy>
<value>decapitated</value>
</dummy>
一个选项是创建一个 SOAPElement 并将其添加到 header,如下所示:
SOAPFactory sf = SOAPFactory.newInstance();
SOAPElement seqElement = sf.createElement(new QName("uri:org.apache.cxf","dummy"));
SOAPElement textElement = sf.createElement(new QName("uri:org.apache.cxf","value"));
textElement.addTextNode("decapitated");
seqElement.addChildElement(textElement);
SoapHeader dummyHeader = new SoapHeader(new QName("uri:org.apache.cxf","dummy"), seqElement);