RPCProvider.java doc/lit 2 in args is hopelessly broken
-------------------------------------------------------
Key: AXIS-2222
URL: http://issues.apache.org/jira/browse/AXIS-2222
Project: Apache Axis
Type: Bug
Components: Basic Architecture
Versions: 1.2.1
Environment: uname -a
Linux charizard 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386
GNU/Linux
java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)
Reporter: Jim Redman
Here's the WSDL, the "read" method has 2 in args (and three out)
http://opcfoundation.org/webservices/XMLDA/1.0/
you get a generated impl that looks like this (+/- the package names):
public void read(RequestOptions options, ReadRequestItemList itemList,
ReplyBaseHolder readResult, ReplyItemListHolder RItemList, OPCErrorArrayHolder
errors) throws RemoteException;
The itemList is always null on reciept.
In RPCProvider in this method:
public void processMessage(MessageContext msgContext,
SOAPEnvelope reqEnv,
SOAPEnvelope resEnv,
Object obj)
there are two "bodies". The first is an RPCElement that represents the
"options" param. The second is a SOAPBodyElement that represents the
"itemList" param.
The method uses on the first body, and so the call (at or about line 148):
args = body.getParams();
returns only the first param.
Many things in that method seems wrong in this case. The "methodName" is
"Options", the name of the first parameter. I think that iterating through both
bodies (how since one's an SOAPBodyElement not an RPCElement) would probably
work, but it would be akin to a hack since there appears to be a fundamental
flaw in the logic before you land in that method.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira