请教大家一个关于CXF获取SoapHeader的问题:
产品中需要实现电信的ISAG服务端,因为CXF和Spring的集成比较方便所以产品中的WebService一直都使用CXF,目前遇到一个问题,就是如何获取SoapHeader,网上找了一下都是通过拦截器方式获取和解析的,但是这样的话该怎么把SoapHeader中的数据传递到到后面的方法中去呢。求解决方案。
Map<String, Object> headers = context.getMessageContext();
List<Header> headerList = (List<Header>)headers.get(Header.HEADER_LIST);
for (Header header : headerList) {
Node root = (Node) header.getObject();
System.out.println("soap header name:" + root.getNodeName() + " text:" + root.getTextContent());
if("RequestSOAPHeader".equals(root.getNodeName())){
NodeList list = root.getChildNodes();
int size = list.getLength();
for(int i=0;i<size;i++){
Node node = list.item(i);
System.out.println("soap header name:" + node.getNodeName() + " text:" + node.getTextContent());
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。