WebService,客户端发包过来,但接口只有包体的数据,没有包头的数据,头包的数据是从协议SOAP里取出来的,现在就是想问是如何取得的?谢谢

解决方案 »

  1.   

    SAAJ,通过获得SOAPMessage,就可以获得SOAPHeader,然后就可以取出头部信息了,不知道对不对,如果是这样的话,上网搜索就可以搜索到用法了
      

  2.   

    问题已经解决了,我把答案供大家享用!
    MessageContext context = MessageContext.getCurrentContext();
    SOAPEnvelope requestEnvelope = context.getRequestMessage().getSOAPEnvelope();
    SOAPHeaderElement requestSequenceIdHeader = requestEnvelope.getHeaderByName(
         "http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1", //包头的命名空间namespace
         "NotifySOAPHeader");                                      //包头的localPart
    DeSOAPHeader soapHeader = new DeSOAPHeader();//DeSOAPHeader自己定义的po类,用来接收包头各个参数
    Iterator iterator = requestSequenceIdHeader.getChildElements();
    while (iterator.hasNext()) {
            SOAPElement element = (SOAPElement) iterator.next();
            String elementName = element.getElementName().getLocalName();
            if (elementName.equals("spRevId"))   
              soapHeader.setSpRevId(element.getValue());
            else if (elementName.equals("spRevpassword"))
              soapHeader.setSpRevpassword(element.getValue());
          }