You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Hannes Litschauer <ha...@litschauer.com> on 2003/10/28 15:45:57 UTC

Encoding or Namespace Problem between Axis Server and Microsoft Client?

Hi,

We are running a Web Service using Axis. I am now trying to build a
client using C#.
I generated the proxy classes using wsdl.exe sucessfully and can post
requests  with the C#-proxy classes and receive a response.

-) If the response is a SOAP Fault an exception with the fault is thrown
(expected result)
-) If the response has no error the object (which is type
'ksvLoginResponseType') is NULL (NOT the expected result), when I want
to access a field of the object I receive a
System.NullReferenceException

I suppose the proxy classes are working fine. Can there be an
encoding/namespace issue? (please see wsdl and soap response below)
(When I use an axis client everything works fine!)

Thanx
Hannes Litschauer


SOAP RESPONSE

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body><response
method="ksvLogin"><payload><info>ok</info></payload></response>
</soapenv:Body>
</soapenv:Envelope>



CODE SNIPPLET:

// after setting all values I invoke ksvLogin
ksvLoginResponseType respObj = service.ksvLogin(kl);

// during the next line, the System.NullReferenceException is thrown
String infoString = respObj.payload.info;



WSDL FILE



<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="https://www.myksv.at/NASApp/axis/services/urn:ksv-premium"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="https://www.myksv.at/NASApp/axis/services/urn:ksv-premi
um">
	<types>
		<s:schema elementFormDefault="qualified"
targetNamespace="https://www.myksv.at/NASApp/axis/services/urn:ksv-premi
um">
			<!-- elemente for ms START -->
			<s:element name="ksvLogin"
type="s0:ksvLoginType"/>
			<s:element name="responseKsvLogin"
type="s0:ksvLoginResponseType"/>
			<!--			<s:element
name="ksvLoginResponse" type="s0:ksvLoginResponse"/>-->
			<!-- elemente for ms END -->
			<s:complexType name="ksvLoginType">
				<s:all>
					<s:element name="request">
						<s:complexType>
							<s:sequence>
	
<s:element name="payload">
	
<s:complexType>
	
<s:sequence>
	
<s:element name="personId" type="s:string"/>
	
<s:element name="clearingId" type="s:string"/>
	
<s:element name="effectiveId" type="s:string" minOccurs="0"/>
	
<s:element name="password" type="s:string"/>
	
</s:sequence>
	
</s:complexType>
	
</s:element>
							</s:sequence>
							<s:attribute
name="method" type="s:string" use="required" fixed="ksvLogin"/>
							<s:attribute
name="invoke" type="s:string" use="optional" fixed="invoke"/>
						</s:complexType>
					</s:element>
				</s:all>
			</s:complexType>
			
				<s:complexType name =
"ksvLoginResponseType">
					<s:sequence>
						<s:element
name="payload">
							<s:complexType>
								<s:all>
	
<s:element name="info" type="s:string"/>
								</s:all>
							</s:complexType>
						</s:element>
					</s:sequence>
					<s:attribute name="method"
type="s:string" use="required"/>
					<s:attribute name="invoke"
type="s:string" use="optional"/>
				</s:complexType>
			
			<s:simpleType name="stcDate">
				<s:restriction base="s:string">
					<s:pattern value="\d{17}"/>
				</s:restriction>
			</s:simpleType>
			<s:simpleType name="person">
				<s:restriction base="s:string"/>
			</s:simpleType>
			<s:simpleType name="clearing">
				<s:restriction base="s:string"/>
			</s:simpleType>
			<s:simpleType name="effective">
				<s:restriction base="s:string"/>
			</s:simpleType>
			<s:simpleType name="response_sent">
				<s:restriction base="s0:stcDate"/>
			</s:simpleType>
			<s:simpleType name="request_received">
				<s:restriction base="s0:stcDate"/>
			</s:simpleType>
			<s:simpleType name="response_id">
				<s:restriction base="s:string"/>
			</s:simpleType>
			<s:simpleType name="request_id">
				<s:restriction base="s:string"/>
			</s:simpleType>
		</s:schema>
	</types>
	<message name="ksvLoginRequest">
		<part name="ksvLogin" element="s0:ksvLogin"/>
	</message>
	<message name="ksvLoginResponse">
		<part name="response" element="s0:responseKsvLogin"/>
	</message>
	<portType name="KSVInfoPort">
		<operation name="ksvLogin">
			<input message="s0:ksvLoginRequest"/>
			<output message="s0:ksvLoginResponse"/>
		</operation>
	</portType>
	<binding name="KSVInfoBinding" type="s0:KSVInfoPort">
		<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="ksvLogin">
			<soap:operation
soapAction="urn:ksv-premium#ksvLogin" style="document"/>
			<input>
				<soap:body use="literal"
namespace="urn:ksv-premium"/>
			</input>
			<output>
				<soap:body use="literal"
namespace="urn:ksv-premium"/>
			</output>
		</operation>
	</binding>
	<service name="KSVInfoService">
		<port name="KSVInfoPort" binding="s0:KSVInfoBinding">
			<soap:address
location="https://www.myksv.at/NASApp/axis/services/urn:ksv-premium"/>
		</port>
	</service>
</definitions>






C SHARP PROXY CLASS:


//----------------------------------------------------------------------
--------
// <autogenerated>
//     This code was generated by a tool.
//     Runtime Version: 1.1.4322.573
//
//     Changes to this file may cause incorrect behavior and will be
lost if 
//     the code is regenerated.
// </autogenerated>
//----------------------------------------------------------------------
--------

// 
// Der Quellcode wurde von wsdl automatisch generiert.
Version=1.1.4322.573.
// 
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;


/// <remarks/>
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="KSVInfoBinding",
Namespace="https://www.myksv.at/NASApp/axis/services/urn:ksv-premium")]
public class KSVInfoService :
System.Web.Services.Protocols.SoapHttpClientProtocol {
    
    /// <remarks/>
    public KSVInfoService() {
        
        this.Url=".........";
    }
    
    /// <remarks/>
 
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:ksv-prem
ium#ksvLogin",
Use=System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
    [return:
System.Xml.Serialization.XmlElementAttribute("responseKsvLogin",
Namespace="https://www.myksv.at/NASApp/axis/services/urn:ksv-premium")]
    public ksvLoginResponseType
ksvLogin([System.Xml.Serialization.XmlElementAttribute("ksvLogin",
Namespace="https://www.myksv.at/NASApp/axis/services/urn:ksv-premium")]
ksvLoginType ksvLogin1) {
        object[] results = this.Invoke("ksvLogin", new object[] {
                    ksvLogin1});
        return ((ksvLoginResponseType)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginksvLogin(ksvLoginType ksvLogin1,
System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("ksvLogin", new object[] {
                    ksvLogin1}, callback, asyncState);
    }
    
    /// <remarks/>
    public ksvLoginResponseType EndksvLogin(System.IAsyncResult
asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((ksvLoginResponseType)(results[0]));
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="https://www.myksv.
at/NASApp/axis/services/urn:ksv-premium")]
public class ksvLoginType {
    
    /// <remarks/>
    public ksvLoginTypeRequest request;
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="https://www.myksv.
at/NASApp/axis/services/urn:ksv-premium")]
public class ksvLoginTypeRequest {
    
    /// <remarks/>
    public ksvLoginTypeRequestPayload payload;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    [System.ComponentModel.DefaultValueAttribute("ksvLogin")]
    public string method = "ksvLogin";
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    [System.ComponentModel.DefaultValueAttribute("invoke")]
    public string invoke = "invoke";
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="https://www.myksv.
at/NASApp/axis/services/urn:ksv-premium")]
public class ksvLoginTypeRequestPayload {
    
    /// <remarks/>
    public string personId;
    
    /// <remarks/>
    public string clearingId;
    
    /// <remarks/>
    public string effectiveId;
    
    /// <remarks/>
    public string password;
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="https://www.myksv.
at/NASApp/axis/services/urn:ksv-premium")]
public class ksvLoginResponseTypePayload {
    
    /// <remarks/>
    public string info;
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="https://www.myksv.
at/NASApp/axis/services/urn:ksv-premium")]
public class ksvLoginResponseType {
    
    /// <remarks/>
    public ksvLoginResponseTypePayload payload;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string method;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string invoke;
}

___________________________________

Mag. Johannes Litschauer
Consultant

Mobil: +43 676 846484-25
E-Mail: Johannes.Litschauer@ebcont.com
EBCONT - electronic business consulting team GmbH
Tel: +43 2772 51269-0   |   Fax: +43 2772 51269-9