Groups | Blog | Home
all groups > dotnet xml > september 2003 >

dotnet xml : .Net Client calling Apache WebService: Problem with NULL-Values


jens.schultheiss NO[at]SPAM eurobase.lu
9/5/2003 9:03:36 AM
Hello,

i am trying to call a Apache WebService, which accepts NULL-Values for
some Parameters of a specific Web-Method. NULL-Values are mapped
within the soap-request by the .NET Client corresponding to the
following example-schema:

<ffin xsi:nil="true" />

the problem is that Apache expects the following request-schema:

<ffin xsi:type="xsd:string" xsi:nil="true"/>

otherwise Apache responds with an exception.

How can i get my .Net Web-Service Client to add the
missing "xsi:type" attribute

Dino Chiesa [MSFT]
9/5/2003 6:13:14 PM
Apache What?
Apache SOAP
Apache AXIS?
which version?

Can you show us the WSDL?


[quoted text, click to view]

jens.schultheiss NO[at]SPAM eurobase.lu
9/8/2003 7:12:45 AM
Here are the missing informations for the webservice server-side:

Apache SOAP 2.3.1
xercesImpl.jar 2.3.0 Apache XML Parser

and the wsdl file comes here:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="DispoListe"
targetNamespace="http://ws.dispoliste.skoda.eis.de.wsdl/DispoListe/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://ws.dispoliste.skoda.eis.de.wsdl/DispoListe/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://ws.dispoliste.skoda.eis.de/"
xmlns:xsd2="http://state.ws.dispoliste.skoda.eis.de/">
<types>
<schema attributeFormDefault="qualified"
elementFormDefault="unqualified"
targetNamespace="http://ws.dispoliste.skoda.eis.de/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd1="http://ws.dispoliste.skoda.eis.de/"
xmlns:xsd2="http://state.ws.dispoliste.skoda.eis.de/">
<import namespace="http://state.ws.dispoliste.skoda.eis.de/"/>
<import namespace="http://schemas.xmlsoap.org/wsdl/"
schemaLocation="http://schemas.xmlsoap.org/wsdl/"/>
<import
namespace="http://schemas.xmlsoap.org/soap/encoding/"
schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOfDispoListeBean">
<complexContent>
<restriction base="soapenc:Array">
<sequence/>
<attribute ref="soapenc:arrayType"
wsdl:arrayType="xsd2:DispoListeBean[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
<schema attributeFormDefault="qualified"
elementFormDefault="unqualified"
targetNamespace="http://state.ws.dispoliste.skoda.eis.de/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://state.ws.dispoliste.skoda.eis.de/">
<complexType name="DispoListeBean">
<all>
<element name="ffin" nillable="true"
type="string"/>
<element name="bstlt" nillable="true"
type="string"/>
<element name="fzart" nillable="true"
type="string"/>
<element name="ffaell" nillable="true"
type="decimal"/>
<element name="fhinws" nillable="true"
type="string"/>
<element name="fkomnr" nillable="true"
type="decimal"/>
<element name="hbknna" nillable="true"
type="string"/>
<element name="fzgl" nillable="true"
type="string"/>
<element name="fbmod" nillable="true"
type="string"/>
<element name="fbfarb" nillable="true"
type="string"/>
<element name="flgr" nillable="true"
type="string"/>
<element name="fbopt" nillable="true"
type="string"/>
<element name="f90t" nillable="true"
type="string"/>
<element name="fagl" nillable="true"
type="string"/>
<element name="fredat" nillable="true"
type="decimal"/>
<element name="hbkvna" nillable="true"
type="string"/>
<element name="hahdln" nillable="true"
type="decimal"/>
<element name="frenr" nillable="true"
type="decimal"/>
<element name="fzfrt" nillable="true"
type="decimal"/>
<element name="hfhdln" nillable="true"
type="decimal"/>
<element name="fstsar" nillable="true"
type="string"/>
<element name="fbestd" nillable="true"
type="decimal"/>
<element name="hblfrw" nillable="true"
type="decimal"/>
</all>
</complexType>
</schema>
</types>
<message name="getListeRequest">
<part name="haendlernummer" type="xsd:decimal"/>
<part name="fkomnr" type="xsd:decimal"/>
<part name="ffin" type="xsd:string"/>
<part name="fbmod" type="xsd:string"/>
<part name="orderBy" type="xsd:string"/>
<part name="fromCache" type="xsd:boolean"/>
<part name="testDaten" type="xsd:boolean"/>
</message>
<message name="getListeResponse">
<part name="result" type="xsd1:ArrayOfDispoListeBean"/>
</message>
<portType name="DispoListe">
<operation name="getListe" parameterOrder="haendlernummer
fkomnr ffin fbmod orderBy fromCache testDaten">
<input message="tns:getListeRequest"
name="getListeRequest"/>
<output message="tns:getListeResponse"
name="getListeResponse"/>
</operation>
</portType>
Dino Chiesa [MSFT]
9/8/2003 4:02:04 PM
Have you consulted http://ws.apache.org/soap/docs/guide/interop.html
?

Could it be that you are experiencing the soap interop problem described
therein ?

With Apache SOAP v2.x, there was an issue that the Apache soap runtime
required incoming SOAP envelopes to embed an xsi:type on every param. The
SOAP spec does not require this, but the Apache SOAP implementation did.
Implementations of SOAP (such as .NET ) that did not embed xsi:type into
every param tended to confuse Apache SOAP. There is a workaround.

The other (preferred?) workaround is to move your Java implementation to
Apache AXIS. ;)

-D

[quoted text, click to view]

jens.schultheiss NO[at]SPAM eurobase.lu
9/9/2003 12:37:59 AM
Thank you for this information, that seems to hit the problem!
In a first step i will try out the described modifications within the
apache deployment descriptor.

AddThis Social Bookmark Button