axis2,CXF获取消息头

1.axis2 获取消息头中的数据
SOAPHeader header = MessageContext.getCurrentMessageContext()
				.getEnvelope().getHeader();
		ResponseSOAPHeaderVo head = new ResponseSOAPHeaderVo();
		OMElement ole = header.getFirstElement();
		Iterator it = (Iterator) ole.getChildElements();
		while (it.hasNext()) {
			OMElement ome = (OMElement) it.next();
			if ("spRevId".equals(ome.getLocalName())) {
				head.setSpRevId(ome.getText());
			} else if ("spRevpassword".equals(ome.getLocalName())) {
				head.setSpRevpassword(ome.getText());
			} else if ("spId".equals(ome.getLocalName())) {
				head.setSpId(ome.getText());
			} else if ("SAN".equals(ome.getLocalName())) {
				head.setSAN(ome.getText());
			} else if ("transactionId".equals(ome.getLocalName())) {
				head.setTransactionId(ome.getText());
			} else if ("linkId".equals(ome.getLocalName())) {
				head.setLinkId(ome.getText());
			}
		}




2.CXF获取消息头中的数据

    @Resource
    private WebServiceContext context;

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();
        	if(root==null) {
        		continue;
        	}
        	String headerName = root.getNodeName();
        	if(headerName.contains("NotifySOAPHeader")){
        		NodeList listLinkId = root.getChildNodes();
        		int size = listLinkId.getLength();
	        	for(int i=0; i<size; i++){
	        		Node node = listLinkId.item(i);
	        		if(node.getNodeName().contains("linkId")){
	        			linkId = node.getFirstChild().getNodeValue();
	        		}
	        	}
        	}
    	}

猜你喜欢

转载自2819272.iteye.com/blog/2083548
今日推荐