You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Jim Redman (JIRA)" <ax...@ws.apache.org> on 2005/09/18 03:29:54 UTC

[jira] Created: (AXIS-2222) RPCProvider.java doc/lit 2 in args is hopelessly broken

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


[jira] Commented: (AXIS-2222) RPCProvider.java doc/lit 2 in args is hopelessly broken

Posted by "Jim Redman (JIRA)" <ax...@ws.apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS-2222?page=comments#action_12368173 ] 

Jim Redman commented on AXIS-2222:
----------------------------------

This issue is still valid for 1.3

> 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