APAR status
Closed as program error.
Error description
There are problems with using overloaded methods in Web
Services. The following appears in the log:
<log>
[6/1/05 15:11:31:346 CDT] 63fb2fe0 enterprise I
com.ibm.ws.webservices.engine.enterprise TRAS0014I: The
following
exception was logged WebServicesFault
faultCode: Server.generalException
faultString: WSWS3281E: Error: Tried to invoke method public
mypackage.methodReturn
mypackage.myMethod(java.lang.String,java.
lang.String) with arguments
java.lang.String,java.util.ArrayList. The
arguments do not match the signature.
faultActor: null
faultDetail:
WSWS3281E: Error: Tried to invoke method public
mypackage.methodReturn
mypackage.myMethod(java.lang.String,java.
lang.String) with arguments
java.lang.String,java.util.ArrayList. The arguments do not
match the signature.
at
com.ibm.ws.webservices.engine.xmlsoap.builders.SOAPFaultBuilder.
createFa
ult(SOAPFaultBuilder.java:228)
at
com.ibm.ws.webservices.engine.xmlsoap.builders.SOAPFaultBuilder.
endEleme
nt(SOAPFaultBuilder.java:156)
at
com.ibm.ws.webservices.engine.events.P2DConverter.endElement(P2D
Converte
r.java:409)
at sax.SAX2DocumentEntityParserBase.endElementAction(Unknown
Source)
</log>
They have a method called "myMethod" with the following
prototypes:
public methodReturn myMethod(String username, String password)
public methodReturn myMethod(String username, String password,
String version)
Investigating the trace, it looks like the three parameters are
being sent in, and the last two parameters are being interpreted
as an array:
<tcp trace>
<myMethod xmlns="http://mypackage">
<username xsi:type="xsd:string" xmlns="">myusername</username>
<password xsi:type="xsd:string" xmlns="">mypassword</password>
<version xsi:type="xsd:string" xmlns="">1.1</version>
</myMethod>
</tcp trace>
<trace.log>
[6/7/05 10:17:55:605 CDT] 14b37dd4 JavaUtils d
com.ibm.ws.webservices.engine.utils.JavaUtils Trying to convert
java.util.ArrayList to java.lang.String
[6/7/05 10:17:55:616 CDT] 14b37dd4 RPCProvider d
com.ibm.ws.webservices.engine.providers.java.RPCProvider
value: [mypassword, 1.1]
</trace.log>
The parameters are myusername, mypassword, and 1.1. Notice that
the ArrayList consists of mypassword and 1.1.
Local fix Problem summary
****************************************************************
* USERS AFFECTED: WebSphere Application Server users of web *
* services *
****************************************************************
* PROBLEM DESCRIPTION: Using overloaded methods in web *
* services does not work. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
There are problems with using overloaded methods in Web
Services. The following appears in the log:
<log>
[6/1/05 15:11:31:346 CDT] 63fb2fe0 enterprise I
com.ibm.ws.webservices.engine.enterprise TRAS0014I: The
following
exception was logged WebServicesFault
faultCode: Server.generalException
faultString: WSWS3281E: Error: Tried to invoke method public
mypackage.methodReturn
mypackage.myMethod(java.lang.String,java.
lang.String) with arguments
java.lang.String,java.util.ArrayList. The
arguments do not match the signature.
faultActor: null
faultDetail:
WSWS3281E: Error: Tried to invoke method public
mypackage.methodReturn
mypackage.myMethod(java.lang.String,java.
lang.String) with arguments
java.lang.String,java.util.ArrayList. The arguments do not
match the signature.
at
com.ibm.ws.webservices.engine.xmlsoap.builders.SOAPFaultBuilder.
createFault(SOAPFaultBuilder.java:228)
at
com.ibm.ws.webservices.engine.xmlsoap.builders.SOAPFaultBuilder.
endElement(SOAPFaultBuilder.java:156)
at
com.ibm.ws.webservices.engine.events.P2DConverter.endElement
(P2DConverter.java:409)
at sax.SAX2DocumentEntityParserBase.endElementAction(Unknown
Source)
</log>
They have a method called "myMethod" with the following
prototypes:
public methodReturn myMethod(String username, String password)
public methodReturn myMethod(String username, String password,
String version)
Investigating the trace, it looks like the three parameters are
being sent in, and the last two parameters are being interpreted
as an array:
<tcp trace>
<myMethod xmlns="http://mypackage">
<username xsi:type="xsd:string" xmlns="">myusername</username>
<password xsi:type="xsd:string" xmlns="">mypassword</password>
<version xsi:type="xsd:string" xmlns="">1.1</version>
</myMethod>
</tcp trace>
<trace.log>
[6/7/05 10:17:55:605 CDT] 14b37dd4 JavaUtils d
com.ibm.ws.webservices.engine.utils.JavaUtils Trying to convert
java.util.ArrayList to java.lang.String
[6/7/05 10:17:55:616 CDT] 14b37dd4 RPCProvider d
com.ibm.ws.webservices.engine.providers.java.RPCProvider
value: [mypassword, 1.1]
</trace.log>
The parameters are myusername, mypassword, and 1.1. Notice that
the ArrayList consists of mypassword and 1.1.
Problem conclusion
Resolved issue with overloaded operation's parameters.
The fix for this APAR is currently targeted for inclusion in
fixpacks 5.0.2.13 and 5.1.1.6. Please refer to the Recommended
Updates page for delivery information:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix Comments
APAR information |
APAR number |
PK07045 |
Reported component name |
WAS NETWRK DEPL |
Reported component ID |
5630A3601 |
Reported release |
00A |
Status |
CLOSED PER |
PE |
NoPE |
HIPER |
NoHIPER |
Special Attention |
NoSpecatt |
Submitted date |
2005-06-09 |
Closed date |
2005-06-17 |
Last modified date |
2005-06-17 |
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
Publications Referenced
|
Fix information |
Fixed component name |
WAS NETWRK DEPL |
Fixed component ID |
5630A3601 |
Applicable component levels |
R003 PSY |
UP |
R00A PSY |
UP |
R00H PSY |
UP |
R00I PSY |
UP |
R00P PSY |
UP |
R00S PSY |
UP |
R00W PSY |
UP |
R103 PSY |
UP |
R10A PSY |
UP |
R10H PSY |
UP |
R10I PSY |
UP |
R10P PSY |
UP |
R10S PSY |
UP |
R10W PSY |
UP |
|