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 Tim Dierks <ti...@yahoo.com> on 2003/01/28 17:24:25 UTC

Bug with overloaded methods?

I posted a similar question to the one described here
earlier this month but got no responses, so I
apologize for repeating myself.  But I'm getting
nowhere with my testing and wonder if anyone can shed
some light on the problem I'm experiencing.

My web service has overloaded methods like:

1) MyObject test1(String s1, String s2, MyObject obj);

2) MyObject[] test1(String s1, String s2, MyObject[]
obj);

My web service is actually more complicated, with five
versions of the same "test1" method, each with a
different signature, plus 15 - 20 other methods with a
variety of names and signatures.

The problem is that Axis 1.1 Beta seems to map my call
to version (1) of the "test1" method to version (2). 
My monitor shows that the client invokes method (1),
but the axis log file on my server shows that Axis
converted my single object to an array of the same
object before invoking method (2) instead of (1):

"org.apache.axis.utils.JavaUtils  - Trying to convert
MyObject to [LMyObject;"

If I randomly shuffle the order of the methods in my
Java source file for my web service and then
recompile, the proper method gets invoked on the
server, depending on the order that the methods appear
in the source.  I assume that this is a result of
Axis' use of reflection.

I tried manually defining my operations in wsdd, but
this doesn't help.

Everything works fine when I substitute Apache SOAP
for my web service.  But with Axis on the server I
encounter the problem, whether I use Apache SOAP or
Axis on the client.

Is there something wrong with the way Axis handles
overloaded methods in a web service?  Or could I be
overlooking something in my configuration?

Thanks,

Tim


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com