MTOM databinding NOT send raw binary data
-----------------------------------------

                 Key: AXIS2-952
                 URL: http://issues.apache.org/jira/browse/AXIS2-952
             Project: Apache Axis 2.0 (Axis2)
          Issue Type: Bug
    Affects Versions: 1.0
         Environment: WindosXP, tomcat 5.5, jdk1.5, Axis2 1.0
            Reporter: Francisco Fernandez


With the next WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:tns="http://foo.com/types/";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
targetNamespace="http://foo.com/types/";>
        <types>
                <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xmime="http://www.w3.org/2005/05/xmlmime";
elementFormDefault="qualified" targetNamespace="http://foo.com/types/";>
                        <xsd:import
namespace="http://www.w3.org/2005/05/xmlmime";
schemaLocation="http://www.w3.org/2005/05/xmlmime"/>
                        <xsd:element name="image-attachment"
xmime:expectedContentTypes='image/tiff'>
                                <xsd:complexType>
                                        <xsd:simpleContent>
                                                <xsd:extension
base="xsd:base64Binary">
                                                        <xsd:attribute
ref="xmime:contentType" use="required"/>
                                                </xsd:extension>
                                        </xsd:simpleContent>
                                </xsd:complexType>
                        </xsd:element>
                        <xsd:element name="emptyResponse">
                                <xsd:complexType/>
                        </xsd:element>
                        <xsd:element name="enqueue-image">
                                <xsd:complexType>
                                        <xsd:sequence>
                                                <xsd:element
name="meta-info" type="xsd:string"/>
                                                <xsd:element
ref="tns:image-attachment" minOccurs="1" maxOccurs="1" />
                                        </xsd:sequence>
                                </xsd:complexType>
                        </xsd:element>
                </xsd:schema>
        </types>
        <message name="enqueueImageRequest">
                <part name="image" element="tns:enqueue-image"/>
        </message>
        <message name="emptyResponse"/>
        <portType name="XXXPortType">
                <operation name="enqueue_image">
                        <input name="image"
message="tns:enqueueImageRequest"/>
                        <output name="empty" message="tns:emptyResponse"/>
                </operation>
        </portType>
        <binding name="XXXSoapBinding" type="tns:XXXPortType">
                <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="enqueue_image">
                        <soap:operation
soapAction="http://foo.com/XXX/enqueueImage"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
        <service name="XXXServiceMTOM">
                <port name="XXXPortType" binding="tns:XXXSoapBinding">
                        <soap:address location="http://"/>
                </port>
        </service>
</definitions>

Using xmlbeans databinding:

<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                <classpath refid="axis.classpath"/> 
                                <arg value="-d"/> 
                                <arg value="xmlbeans"/>
                                <arg value="-ss"/> 
                                <arg value="-ssi"/> 
                                <arg value="-sd"/> 
                                <arg value="-g"/> 
                                <arg value="-o"/>
                                <arg file="${generated.dir}"/>
                                <arg value="-p"/> 
                                <arg value="com.foo"/>            
                                <arg value="-uri"/>
                                <arg file="${file.wsdl}"/>                      
                </java>

Using the stub client WSDL2Java generated, the SOAP sent (SOAPMonitor trace) is 
as follows:

<?xml version="1.0" encoding="utf-8"?>
 <soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
         <soapenv:Header/>
         <soapenv:Body>
                 <enqueue-image>
                         <meta-info>foo</meta-info>  
                         
<image-ttachment>//zU8Guvrtr7aXm14hR7GyI42QkWK+KgyEQRY0yI9wyI9rBgt4URERERER
ERHyutByKM1IzUrqgEECBdCyBxqAg4ROyGeTHUtw2U5Yk+9PQ5QY/LGGHevw3/t6Jjv7f+30
ERHyutByKM1IzUrqgEECBdCyBxqAg4ROyGeTHUtw2U5Yk+3kGA
P/IMdb0ryY//9vSfQ/8sZb9v/17ehf0v9vT5BrCX+xomjsjhwTy4ICKeXVlwlkcUj6ulePiCQi44
i96blvCEq5lQZ0zPZnuHpqIiIiIiIiP//5bqp097om4egwyku2vbXt8Em0qsNLhtLtpdtLTa9tLt
hLsQuyMf0....../k4krqa//0g==</image-attachment>
                </enqueue-image>
         </soapenv:Body>
 </soapenv:Envelope>

I think this is not the correct way for MTOM to send binary data.

Thanks


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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to