Axis WebService的客戶端調WebService, 但是現在需要加一個UserNameToken.就是需要在Soap包裏面加上一個頭.需要加的內容如下(應該是用wss4j這個包來完成的):
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>aaa</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">aaaaa</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
public void setSoapHeader(){
try{
org.apache.axis.message.SOAPHeaderElement soapHeaderElement;
soapHeaderElement = new org.apache.axis.message.SOAPHeaderElement("wsse","Security");
soapHeaderElement.setMustUnderstand(true);
soapHeaderElement.setNamespaceURI("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
SOAPElement token = soapHeaderElement.addChildElement("UsernameToken");
SOAPElement userName = token.addChildElement("Username","wsse","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
userName.setValue("username");
SOAPElement password = token.addChildElement("Password","wsse","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
password.setValue("password");
_call.addHeader(soapHeaderElement);
}catch(Exception err){
err.printStackTrace();
}
}