HI! Yes, I know that we have the parameter names during WSDL generation, but not during a method call.
I don't think, I can wait until the description code is ready, unless it's next week or so. ;-) So, maybe I will provide some hack in the meantime. Regards, Thomas > -----Original Message----- > From: Tom Jordahl [mailto:[EMAIL PROTECTED]] > Sent: Donnerstag, 21. März 2002 17:11 > To: '[EMAIL PROTECTED]' > Subject: RE: Urgent interop problem with .NET if String parameter is > null -> big problem > > > > We already know the argument names (we need them for WSDL generation) > and Glen is working on a Service/Operation description code > that helps in this area because it allows you to more clearly > specify the parameter names (specifically the XML element names) > for each operation. Once we have this, we will not need to grunge > through the byte code unless we have no other option. > > This will go a long way to addressing the problem. > > -- > Tom Jordahl > Macromedia > > -----Original Message----- > From: Thomas Börkel [mailto:[EMAIL PROTECTED]] > Sent: Thursday, March 21, 2002 10:45 AM > To: [EMAIL PROTECTED] > Subject: RE: Urgent interop problem with .NET if String parameter is > null -> big problem > > > HI! > > It's not only a problem of overloaded methods. > > Consider this signature: > > myFunc(int i, String s1, String s2, int j) > > Now, if s1 OR s2 is missing, Axis can't determine which one > is missing, because Axis does not have the parameters names > at that time. I think, that's the main problem. > > OK, one possible (hack) fix comes to mind: > Use tt-bytecode (we already have a cache for that in > ClassRep, that probably should be more global) to find out > the parameter names at runtime, if such a situation occurs. > Problem is, this is a VERY expensive operation... One could > also look at the WSDL, IF it's available at that time... > > So, if this is a known problem and there is no solution yet, > then Axis can't interop with .NET, that's it. :-( > > If some solution comes to my mind, I'll implement and provide it. > > BTW, if .NET is the server and the client sends a NULL as > xsi:nil="true", then .NET thinks this is "". On the other > hand, if .NET is the client and gets xsi:nil="true" as > return, then it recognizes it as NULL. So, .NET also has a > problem in this field. > > Regards, > Thomas > > > -----Original Message----- > > From: Tom Jordahl [mailto:[EMAIL PROTECTED]] > > Sent: Donnerstag, 21. März 2002 16:25 > > To: '[EMAIL PROTECTED]' > > Subject: RE: Urgent interop problem with .NET if String parameter is > > null -> big problem > > > > > > > What now? > > > > You will have to wait until someone implements the missing feature. > > Or pitch in and implement it yourself. > > > > Omitting parameters is allowed by the spec, and .NET does it. :-( > > > > The trick is how do you dispatch the request to the correct > operation > > if you can't use the parameters of the operation to select > > which method > > to call? > > > > Example: > > myFunc(int i, String foo); > > myFunc(int i); > > > > If <foo> is missing from the XML, which function do you call? .NET > > does it with SoapAction, which is different even for > methods which are > > overloaded. > > > > Glen Daniels is currently working on some much needed changes > > that will clean up the way the Axis engine does operation > > resolution. While this (probably) wont fix the problem right away, > > it will lay the foundation for code that can do the search. > > > > -- > > Tom Jordahl > > Macromedia > > > > > > -----Original Message----- > > From: Thomas Börkel [mailto:[EMAIL PROTECTED]] > > Sent: Thursday, March 21, 2002 9:00 AM > > To: [EMAIL PROTECTED] > > Subject: RE: Urgent interop problem with .NET if String parameter is > > null -> big problem > > > > > > OK, according to W3C, it is allowed to omit null parameters: > > > > From http://www.w3c.org/TR/2001/WD-soap12-part2-20011217/: > > A NULL value or a default value MAY be represented by > > omission of the accessor element. A NULL value MAY also be > > indicated by an accessor element containing the attribute > > xsi:nil with value "1 or true" or possibly other > > application-dependent attributes and values. > > > > What now? > > > > > -----Original Message----- > > > From: Thomas Börkel > > > Sent: Donnerstag, 21. März 2002 11:30 > > > To: [EMAIL PROTECTED] > > > Subject: RE: Urgent interop problem with .NET if String > parameter is > > > null -> big problem > > > > > > > > > > > > Apparently, this is not a problem if the client is Axis, > > > because Axis sends always all parameters and marks those > > > which are null with xsi:nil="true". > > > > > > So, is this a bug of .NET or a missing feature in Axis? If it > > > is no bug in .NET, because it's allowed to omit null > > > parameters, then we have a big problem in Axis, I think, > > > because Axis does not know the parameter names at runtime. > > > > > > > -----Original Message----- > > > > From: Thomas Börkel > > > > Sent: Mittwoch, 20. März 2002 15:27 > > > > To: Axis Dev Mailinglist > > > > Subject: Urgent interop problem with .NET if String > > > parameter is null > > > > > > > > > > > > HI! > > > > > > > > Consider the following method in a Java server: > > > > > > > > public String parameterTest(short s, int i, double d, > > > > String t, boolean b) > > > > > > > > > > > > Now, if .NET is the client and I call parameterTest(1, 2, > > > > 3.5, null, true), then .NET does not pass in 't' at all. This > > > > results in an error in Axis. > > > > > > > > This is the SOAP message from .NET for this: > > > > > > > > <?xml version="1.0" encoding="utf-8"?> > > > > <soap:Envelope > > > > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > > > > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > > > > xmlns:tns="http://p2test.p2plus.apag.com" > > > > xmlns:types="http://p2test.p2plus.apag.com/encodedTypes" > > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > > > <soap:Body > > > > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> > > > > <tns:parameterTest> > > > > <s xsi:type="xsd:short">1</s> > > > > <i xsi:type="xsd:int">2</i> > > > > <d xsi:type="xsd:double">3.5</d> > > > > <b xsi:type="xsd:boolean">true</b> > > > > </tns:parameterTest> > > > > </soap:Body> > > > > </soap:Envelope> > > > > > > > > > > > > I am using Axis Beta1 and .NET 1.0. Anyone any ideas how to > > > > get this to work? Is it .NET's fault? Then I'll file a bug > > > > report to MS about this. > > > > > > > > Thanks! > > > > > > > > Regards, > > > > Thomas > > > > > > > > > > > > > >