日期:2014-05-17  浏览次数:20733 次

axis 1 SOAPHeaderElement使用方法


SOAPHeaderElement header = new SOAPHeaderElement("http://www.chinatelecom.com.cn/wsdl/ctcc/terminal_location/notification_manager/v2_2/service","RequestSOAPHeader");


      header.setPrefix("");
      header.setMustUnderstand(true);  
      SOAPElement ele;
try {
ele = header.addChildElement("spId");
ele.addTextNode("12334444");  
        ele = header.addChildElement("spPassword");  
        ele.addTextNode("2222222");  
        
} catch (SOAPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}  

_call.addHeader(header); 


如何让它成这样
<soap:Header>
<RequestSOAPHeader xmlns="http://www.chinatelecom.com.cn/wsdl/ctcc/terminal_location/notification_manager/v2_2/service"><spId>2510000</spId>
<spPassword>E10ADC3949BA59ABBE56E057F20F883E</spPassword>
<timeStamp>0707083329</timeStamp><productId />
<SAN>106298008002005</SAN><transactionID /><transEnd /><linkID />
<OA>tel:18908770056</OA>
<FA>tel:18908770056</FA>
<multicastMessaging>false</multicastMessaging>
</RequestSOAPHeader>

------解决方案--------------------
header基本就是按XML格式来的
addChildElement("spId")就是加入一个<spId></spId>这个标签
这个标签就是你写的ele = header.addChildElement("spId");//这个对象
你再用这个对象ele.addTextNode("12334444");  //添加内容,就是标签里的值。
你这2句运行完就会出现<spId>12334444</spId>这种。
最后这些对象都是有转成String的方法的,你拼的对不对,打印出来就可以了