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

Kirill Tsibriy edited comment on AXIS2-4308 at 4/20/09 5:17 AM:
----------------------------------------------------------------

Thanks for the hint.

There is another workaround - not to use byte[], but use DataHander - I have 
chosen this approach. 

It would be a good thing to fix it, anyways, because it troubles deployment of 
POJO services with autogenerated WSDL. Although, I understand that 
contract-first is the way to go, since the possibility is there, it should be 
implemented correctly.

I need to dig into array representation via XML, but when I get some spare 
time, I will attempt to submit a patch for this.

      was (Author: macondo):
    Thanks for the hint.

There is another workaround - not to use byte[], but use DataHander - I have 
chosen this approach. 

It would be a good thing to fix it, anyways, because it troubles deployment of 
POJO services with autogenerated WSDL. Although, I understand that 
contract-first is the way to go, since the possibility is there, it should be 
implemented correctly.
  
> base64Binary decoding works incorrectly: data is taken from the wrong element 
> in XML
> ------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4308
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4308
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: databinding
>    Affects Versions: 1.4.1
>            Reporter: Kirill Tsibriy
>
> I am deploying services as a POJO.
> I am looking at two code snippets from 1.4.1 src.
> BeanUtil.java:446
>                             } else if (parameters.isArray()) {
>                                 partObj = deserialize(parameters, 
> (OMElement)parts.getParent(),
>                                         objectSupplier, prty.getName());
> BeanUtil.java:372
>                 if ("byte".equals(arrayClassType.getName())) {
>                     return 
> Base64.decode(beanElement.getFirstElement().getText());
> This leads to data being sourced from wrong element, so with request like 
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
> xmlns:zla="schema1" xmlns:xsd="schema1/xsd">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <zla:request>
>           <zla:request>
>              <xsd:id>4748392</xsd:id>
>              <xsd:responseData>AAECAwQ=</xsd:responseData>
>          </zla:request>
>       </zla:request>
>    </soapenv:Body>
> </soapenv:Envelope>
> lead to decoding data from id element instead of contents of response data.

-- 
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