Java调用.NET WebService Header处理
用的JBuilder2005
代理类已经生成好了。。。
用的Stub类进行的调用。。
目前Header头处理方面出了问题,Header头对象确实发送过去了。。但是.NET的WebService方的Header头对象里UserName和PassWord标签字段没有值,都是Null...
代码如下:
org.apache.axis.message.SOAPHeaderElement oHeaderElement = new org.apache.axis.message.SOAPHeaderElement(new QName("http://iata.cc/", "AuthHeader"));
oHeaderElement.setPrefix("");
oHeaderElement.setMustUnderstand(false);
javax.xml.soap.SOAPElement oElement = oHeaderElement.addChildElement("username");
oElement.setPrefix("");
oElement.addTextNode("APF3%G%^9GHK");
oElement = oHeaderElement.addChildElement("password");
oElement.setPrefix("");
oElement.addTextNode("GW79%@!G@!(0");
tds.setHeader(oHeaderElement); //tds对象为JBuilder2005自动生成的WebServices代理类中的XXXXXXXXStub类。。
自动生成的代理类里对应WebService的Header类有两个。。 代码如下
/**
* AuthHeader.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.2beta3 Aug 01, 2004 (05:59:22 PDT) WSDL2Java emitter.
*/
package cc.iata;
public class AuthHeader implements java.io.Serializable {
private java.lang.String username;
private java.lang.String password;
public AuthHeader() {
}
public AuthHeader(
java.lang.String username,
java.lang.String password) {
this.username = username;
this.password = password;
}
/**
* Gets the username value for this AuthHeader.
*
* @return username
*/
public java.lang.String getUsername() {
return username;
}
/**
* Sets the username value for this AuthHeader.
*
* @param username
*/
public void setUsername(java.lang.String username) {
this.username = username;
}
/**
* Gets the password value for this AuthHeader.
*
* @return password
*/
public java.lang.String getPassword() {
return password;
}
/**
* Sets the password value for this AuthHeader.
*
* @param password
*/
public void setPassword(java.lang.String password) {
this.password = password;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof AuthHeader)) return false;
AuthHeader other = (AuthHeader) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.username==null && other.getUsername()==null) ||
(this.username!=null &&
this.username.equals(other.getUsername()))) &&
((this.password==null && other.getPassword()==null) ||
(this.password!=null &&
this.password.equals(other.getPassword())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getUsername() != null) {
_hashCode += getUsername().hashCode();
}
if (getPassword() != null) {
_hashCode += getPassword().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
}
/////////////////////////////////////////////////////////////
/**
* AuthHeader_Helper.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.2beta3 Aug 01, 2004 (05:59:22 PDT) WSDL2Java emitter.
*/
package cc.iata;
public class AuthHeader_Helper {
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(AuthHeader.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("http://iata.cc/", "AuthHeader"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("username");
elemField.setXmlName(new javax.xml.namespace.QName("http://iata.cc/", "Username"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("password");
elemField.setXmlName(new javax.xml.namespace.QName("http://iata.cc/", "Password"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
typeDesc.addFieldDesc(elemField);
}
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}
AuthHeader_Helper类的org.apache.axis.description.TypeDesc和org.apache.axis.message.SOAPHeaderElement对象八杆子打不着一块去哎。。。
请教AuthHeader_Helper如何使用。。。帮忙解决下Java如何发送Header信息到.Net的WebServices.....
感激不尽。。。