[ 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</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</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.