I am using Axis2 1.3 to receive a pdf doc using MTOM from a .NET 2.0 WSE 3.0 C#
client. I am already using an axiom jar from a nightly build that has Thilina's
patch
(https://issues.apache.org/jira/browse/AXIS2-3196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12541070).
I get the above error in the AppendChunkRequestElement class created by
wsdl2java when it tries to parse the MTOM request received from .NET. The .NET
client creates a byte array and sets it into the AttachmentData element. The
complete request element is defined in wsdl as follows:
<s:complexType name="AttachmentType">
<s:sequence>
<s:element maxOccurs="1" minOccurs="0"
name="AttachmentData" type="s:base64Binary"/>
</s:sequence>
</s:complexType>
<s:element name="AppendChunkRequestElement">
<s:complexType>
<s:sequence>
<s:element
name="ClientWorkingFolderOnServer" type="s:string"/>
<s:element name="FileName"
type="s:string"/>
<s:element name="Buffer"
type="tns:AttachmentType"/>
<s:element name="Offset"
type="s:long"/>
<s:element name="BytesRead"
type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
After stepping thru the factory code I see that it parses Buffer and expects
Offset next. As far as I can see from Eclipse variables snapshot, the next
element is Offset. But for some reason it does not find it and throws above
error.
Strangest thing is - I asked the .NET client guy to set a non-binary bytearray
like byte[0]=0,byte[1]=1, etc into AttachmentData element and send it thru'
MTOM and then it works. Why does it not work with the PDF file byte[].
Does the .NET client have to transform the file into a base64 encoded array
before sending it to me? Any other suggestions?
Thanks,
Vish.