[ 
https://issues.apache.org/jira/browse/AXIS2-4350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779914#action_12779914
 ] 

Stefan Geelen commented on AXIS2-4350:
--------------------------------------

We are having exactly the same problem. 

We are trtying to upgrade from Axis2/Java 1.4.1 + Rampart and this is the last 
issue we have. 

This is blocking for us. 

Will this be addressed in 1.6 (or sooner ) ? 

> RPCUtil handles wrapped style of SOAP messages wrongly. 
> --------------------------------------------------------
>
>                 Key: AXIS2-4350
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4350
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.5
>            Reporter: Oleg Zenzin
>
> Class 
> http://svn.apache.org/repos/asf/webservices/axis2/branches/java/1_5/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
>  in the method invokeServiceClass() has following lines:
>            if (inAxisMessage.isWrapped()) {
>                 objectArray = RPCUtil.processRequest(methodElement,
>                         method, 
> inMessage.getAxisService().getObjectSupplier());
>             } else {
>                 objectArray = RPCUtil.processRequest((OMElement) 
> methodElement.getParent(),
>                         method, 
> inMessage.getAxisService().getObjectSupplier());
>             }
> which wrongly handles the wrapped style of SOAP messages. Like, for instance 
> this message:
> <?xml version='1.0' encoding='UTF-8'?> 
>    <soapenv:Envelope 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";> 
>       <soapenv:Header> 
>          <addr:To 
> xmlns:addr="http://www.w3.org/2005/08/addressing";>http://localhost:8383/bre/services/dtws_tryme_newdecisiontable&lt;/addr:To>
>  
>          <addr:Action 
> xmlns:addr="http://www.w3.org/2005/08/addressing";>urn:invokeDecisionTable</addr:Action>
>  
>          <addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing";> 
>             
> <addr:Address>http://www.w3.org/2005/08/addressing/anonymous&lt;/addr:Address>
>  
>          </addr:ReplyTo> 
>          <addr:MessageID 
> xmlns:addr="http://www.w3.org/2005/08/addressing";>uuid:53870713-5719-457f-9965-0ebd111e7dda-5</addr:MessageID>
>  
>       </soapenv:Header> 
>       <soapenv:Body> 
>          <invokeDecisionTable xmlns="http://newdecisiontable.tryme";> 
>             <ns:param0 xmlns:ns="http://newdecisiontable.tryme";> 
>                <ax25:person xmlns:ax25="http://newdecisiontable.tryme/xsd";> 
>                   <ax26:age xmlns:ax26="http://newdecisiontable.tryme/bre"; /> 
>                   <ax26:greeting 
> xmlns:ax26="http://newdecisiontable.tryme/bre"; /> 
>                   <name xmlns="http://newdecisiontable.tryme/bre"; 
> xmlns:ax26="http://newdecisiontable.tryme/bre";>Oleg</name> 
>                </ax25:person> 
>             </ns:param0> 
>          </invokeDecisionTable> 
>       </soapenv:Body> 
>    </soapenv:Envelope>
> will not be deserialized because BeanUtil.deserialize(methodElement, 
> parameters, objectSupplier) will be fed with element <soapenv:Body> instead 
> of element <ns:param0>.
> The fix is pretty simple, instead of above code there should be:
>             if (inAxisMessage.isWrapped()) {
>                 objectArray = 
> RPCUtil.processRequest(methodElement.getFirstElement(),
>                         method, 
> inMessage.getAxisService().getObjectSupplier());
>             } else {
>                 objectArray = RPCUtil.processRequest(methodElement,
>                         method, 
> inMessage.getAxisService().getObjectSupplier());
>             }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to