Here's the short of it:
1. You must use wsdl.exe to generate a proxy class for the service (or
write a proxy manually). You cannot do "Add Web Reference", as that
re-generates the proxy code whenever you rebuild the project (VS.NET).
2. You must add a SoapElement attribute for each method parameter that
specifies the parameter is nullable, e.g.
public String echoString([SoapElement("s", IsNullable=true)] String
s) {...}
3. .NET will now send an XML element for every parameter, but for null
parameters it will not send an xsi:type attribute, just xsi:null (note:
this is a bug: it should send xsi:nil for the 2001 schema). Therefore,
you must add a mapping to your service's deployment descriptor for every
parameter name, e.g.
<isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:x="" qname="x:s"
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/
>
Scott Nichol
----- Original Message -----
From: "Tim Dierks" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 31, 2002 11:49 AM
Subject: .NET client omits null arguments
> I am having a problem with a .NET client omitting null
> arguments from messages sent to my Apache SOAP (2.3.1)
> service. For example, SOAP service method signature
> is:
>
> public int myMethod(String arg1, String arg2);
>
> My .NET C# client makes an call to the SOAP service
> like this:
>
> int result = myMethod(arg1, null);
>
> If arg2 is null, then arg2 is left out altogether from
> the message sent to my Apache SOAP service. So Apache
> SOAP generates a FAULT with the error "no signature
> match", since it received only one argument instead of
> two.
>
> Has anyone encountered this problem and figured out a
> solution?
>
> Thanks,
>
> Tim Dierks
>
>
>
> __________________________________________________
> Do you Yahoo!?
> HotJobs - Search new jobs daily now
> http://hotjobs.yahoo.com/
>
> --
> To unsubscribe, e-mail:
<mailto:soap-user-unsubscribe@;xml.apache.org>
> For additional commands, e-mail:
<mailto:soap-user-help@;xml.apache.org>
>
>
--
To unsubscribe, e-mail: <mailto:soap-user-unsubscribe@;xml.apache.org>
For additional commands, e-mail: <mailto:soap-user-help@;xml.apache.org>