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