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(); } } } }