You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Valerie Masin (JIRA)" <ji...@apache.org> on 2007/04/16 20:21:15 UTC

[jira] Created: (AXIS2-2541) MTOM not using references for array of DataHandlers

MTOM not using references for array of DataHandlers
---------------------------------------------------

                 Key: AXIS2-2541
                 URL: https://issues.apache.org/jira/browse/AXIS2-2541
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: transports
    Affects Versions: 1.1.1
         Environment: Client is written in java and running on Windows XP
            Reporter: Valerie Masin


One of my datatypes is an array of DataHandlers (DataHandler[]). (I got the wsdl to generate this by setting my base64Binary's maxOccurs to unbounded)
 
When I set the client to use MTOM I had expected to see each of these base64Binary objects as separate references to entities outside the soap message. However, when viewing the soap message with tcpmon, they are being sent 'by value'. If I don't use an array then the binary data is sent correctly outside the soap message.
 
Here is what I see (reformatted for clarity). Under <ns1:documents> the document (which is only 8 bytes) is embedded in the message rather than referencing outside. 
 
POST /webservices2_0e/services/DocHarborServices HTTP/1.1
SOAPAction: "urn:compositeCreateDocument"
User-Agent: Axis2
Host: us00wl00.devportal.net:30004
Content-Length: 691
Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225; type="application/xop+xml"; start="<0....@apache.org>"; start-info="text/xml"; charset=UTF-8

--MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225
content-type: application/xop+xml; charset=UTF-8; type="text/xml";
content-transfer-encoding: binary
content-id: <0....@apache.org>

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
<soapenv:Body>
    <ns1:compositeCreateDocument xmlns:ns1="urn:webservices.docharbor.com">
        <ns1:user>idsuser</ns1:user>
        <ns1:documents>MTIzLS0tLTENCg==</ns1:documents>
        <ns1:documents>MTIzLS0tLTINCg==</ns1:documents>
    </ns1:compositeCreateDocument>
</soapenv:Body>
</soapenv:Envelope>
--MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225--


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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Assigned: (AXIS2-2541) MTOM not using references for array of DataHandlers

Posted by "Deepal Jayasinghe (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Deepal Jayasinghe reassigned AXIS2-2541:
----------------------------------------

    Assignee: Thilina Gunarathne

> MTOM not using references for array of DataHandlers
> ---------------------------------------------------
>
>                 Key: AXIS2-2541
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2541
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.1.1
>         Environment: Client is written in java and running on Windows XP
>            Reporter: Valerie Masin
>         Assigned To: Thilina Gunarathne
>         Attachments: composite.wsdl, DocHarborWebServices.java, file123-1.txt, file123-2.txt
>
>
> One of my datatypes is an array of DataHandlers (DataHandler[]). (I got the wsdl to generate this by setting my base64Binary's maxOccurs to unbounded)
>  
> When I set the client to use MTOM I had expected to see each of these base64Binary objects as separate references to entities outside the soap message. However, when viewing the soap message with tcpmon, they are being sent 'by value'. If I don't use an array then the binary data is sent correctly outside the soap message.
>  
> Here is what I see (reformatted for clarity). Under <ns1:documents> the document (which is only 8 bytes) is embedded in the message rather than referencing outside. 
>  
> POST /webservices2_0e/services/DocHarborServices HTTP/1.1
> SOAPAction: "urn:compositeCreateDocument"
> User-Agent: Axis2
> Host: us00wl00.devportal.net:30004
> Content-Length: 691
> Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225; type="application/xop+xml"; start="<0....@apache.org>"; start-info="text/xml"; charset=UTF-8
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225
> content-type: application/xop+xml; charset=UTF-8; type="text/xml";
> content-transfer-encoding: binary
> content-id: <0....@apache.org>
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
> <soapenv:Body>
>     <ns1:compositeCreateDocument xmlns:ns1="urn:webservices.docharbor.com">
>         <ns1:user>idsuser</ns1:user>
>         <ns1:documents>MTIzLS0tLTENCg==</ns1:documents>
>         <ns1:documents>MTIzLS0tLTINCg==</ns1:documents>
>     </ns1:compositeCreateDocument>
> </soapenv:Body>
> </soapenv:Envelope>
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225--

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-2541) MTOM not using references for array of DataHandlers

Posted by "Valerie Masin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Valerie Masin updated AXIS2-2541:
---------------------------------

    Attachment: file123-2.txt
                file123-1.txt

> MTOM not using references for array of DataHandlers
> ---------------------------------------------------
>
>                 Key: AXIS2-2541
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2541
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.1.1
>         Environment: Client is written in java and running on Windows XP
>            Reporter: Valerie Masin
>         Attachments: composite.wsdl, DocHarborWebServices.java, file123-1.txt, file123-2.txt
>
>
> One of my datatypes is an array of DataHandlers (DataHandler[]). (I got the wsdl to generate this by setting my base64Binary's maxOccurs to unbounded)
>  
> When I set the client to use MTOM I had expected to see each of these base64Binary objects as separate references to entities outside the soap message. However, when viewing the soap message with tcpmon, they are being sent 'by value'. If I don't use an array then the binary data is sent correctly outside the soap message.
>  
> Here is what I see (reformatted for clarity). Under <ns1:documents> the document (which is only 8 bytes) is embedded in the message rather than referencing outside. 
>  
> POST /webservices2_0e/services/DocHarborServices HTTP/1.1
> SOAPAction: "urn:compositeCreateDocument"
> User-Agent: Axis2
> Host: us00wl00.devportal.net:30004
> Content-Length: 691
> Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225; type="application/xop+xml"; start="<0....@apache.org>"; start-info="text/xml"; charset=UTF-8
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225
> content-type: application/xop+xml; charset=UTF-8; type="text/xml";
> content-transfer-encoding: binary
> content-id: <0....@apache.org>
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
> <soapenv:Body>
>     <ns1:compositeCreateDocument xmlns:ns1="urn:webservices.docharbor.com">
>         <ns1:user>idsuser</ns1:user>
>         <ns1:documents>MTIzLS0tLTENCg==</ns1:documents>
>         <ns1:documents>MTIzLS0tLTINCg==</ns1:documents>
>     </ns1:compositeCreateDocument>
> </soapenv:Body>
> </soapenv:Envelope>
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225--

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-2541) MTOM not using references for array of DataHandlers

Posted by "Lukasz Nieweglowski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12833006#action_12833006 ] 

Lukasz Nieweglowski commented on AXIS2-2541:
--------------------------------------------

I've spent some time investigating this issue and I've found how to send and array of DataHandlers using MTOM. 

There is a difference for Axis2 engine how you define your array of binary types in WSDL file. When I used:

      <xsd:complexType name="BinaryItemArrayType">
        <xsd:sequence>
          <xsd:element name="BinaryData" maxOccurs="1" minOccurs="1" type="xsd:base64Binary"/>
        </xsd:sequence>
      </xsd:complexType>

then Axis2 was able to sent data using MTOM but when I tried to do it this way:
      
      <xsd:element name="BinaryData"  type="xsd:base64Binary"/>      

      <xsd:complexType name="BinaryItemArrayType">
        <xsd:sequence>
          <xsd:element  maxOccurs="1" minOccurs="1"  ref="BinaryData"/>               
        </xsd:sequence>
      </xsd:complexType>

then all my data was sent inside SOAP message using standard base64 encoding. 

It is visible nicely when you mix these two approaches. To do that just put this type into WSDL file and us it to send multiple DataHandlers assigned to BinaryData and InternalBinaryData:

      <xsd:element name="BinaryData"  type="xsd:base64Binary"/>      

      <xsd:complexType name="BinaryItemArrayType">
        <xsd:sequence>
           <xsd:element name="InternalBinaryData" maxOccurs="1" minOccurs="1" type="xsd:base64Binary"/>
           <xsd:element  maxOccurs="1" minOccurs="1"  ref="BinaryData"/>               
        </xsd:sequence>
      </xsd:complexType>

>From my point of view this is still a bug. We have two ways of defining data type in WSDL file which are logically equal but behavior is different.

Tested on Linux, Apache Tomcat 5.5.27, Axis2 1.5.1.

> MTOM not using references for array of DataHandlers
> ---------------------------------------------------
>
>                 Key: AXIS2-2541
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2541
>             Project: Axis2
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.1.1
>         Environment: Client is written in java and running on Windows XP
>            Reporter: Valerie Masin
>            Assignee: Thilina Gunarathne
>         Attachments: composite.wsdl, DocHarborWebServices.java, file123-1.txt, file123-2.txt
>
>
> One of my datatypes is an array of DataHandlers (DataHandler[]). (I got the wsdl to generate this by setting my base64Binary's maxOccurs to unbounded)
>  
> When I set the client to use MTOM I had expected to see each of these base64Binary objects as separate references to entities outside the soap message. However, when viewing the soap message with tcpmon, they are being sent 'by value'. If I don't use an array then the binary data is sent correctly outside the soap message.
>  
> Here is what I see (reformatted for clarity). Under <ns1:documents> the document (which is only 8 bytes) is embedded in the message rather than referencing outside. 
>  
> POST /webservices2_0e/services/DocHarborServices HTTP/1.1
> SOAPAction: "urn:compositeCreateDocument"
> User-Agent: Axis2
> Host: us00wl00.devportal.net:30004
> Content-Length: 691
> Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225; type="application/xop+xml"; start="<0....@apache.org>"; start-info="text/xml"; charset=UTF-8
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225
> content-type: application/xop+xml; charset=UTF-8; type="text/xml";
> content-transfer-encoding: binary
> content-id: <0....@apache.org>
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
> <soapenv:Body>
>     <ns1:compositeCreateDocument xmlns:ns1="urn:webservices.docharbor.com">
>         <ns1:user>idsuser</ns1:user>
>         <ns1:documents>MTIzLS0tLTENCg==</ns1:documents>
>         <ns1:documents>MTIzLS0tLTINCg==</ns1:documents>
>     </ns1:compositeCreateDocument>
> </soapenv:Body>
> </soapenv:Envelope>
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225--

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


[jira] Commented: (AXIS2-2541) MTOM not using references for array of DataHandlers

Posted by "Glen Daniels (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12503569 ] 

Glen Daniels commented on AXIS2-2541:
-------------------------------------

Could you please include your client code?

> MTOM not using references for array of DataHandlers
> ---------------------------------------------------
>
>                 Key: AXIS2-2541
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2541
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.1.1
>         Environment: Client is written in java and running on Windows XP
>            Reporter: Valerie Masin
>            Assignee: Thilina Gunarathne
>         Attachments: composite.wsdl, DocHarborWebServices.java, file123-1.txt, file123-2.txt
>
>
> One of my datatypes is an array of DataHandlers (DataHandler[]). (I got the wsdl to generate this by setting my base64Binary's maxOccurs to unbounded)
>  
> When I set the client to use MTOM I had expected to see each of these base64Binary objects as separate references to entities outside the soap message. However, when viewing the soap message with tcpmon, they are being sent 'by value'. If I don't use an array then the binary data is sent correctly outside the soap message.
>  
> Here is what I see (reformatted for clarity). Under <ns1:documents> the document (which is only 8 bytes) is embedded in the message rather than referencing outside. 
>  
> POST /webservices2_0e/services/DocHarborServices HTTP/1.1
> SOAPAction: "urn:compositeCreateDocument"
> User-Agent: Axis2
> Host: us00wl00.devportal.net:30004
> Content-Length: 691
> Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225; type="application/xop+xml"; start="<0....@apache.org>"; start-info="text/xml"; charset=UTF-8
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225
> content-type: application/xop+xml; charset=UTF-8; type="text/xml";
> content-transfer-encoding: binary
> content-id: <0....@apache.org>
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
> <soapenv:Body>
>     <ns1:compositeCreateDocument xmlns:ns1="urn:webservices.docharbor.com">
>         <ns1:user>idsuser</ns1:user>
>         <ns1:documents>MTIzLS0tLTENCg==</ns1:documents>
>         <ns1:documents>MTIzLS0tLTINCg==</ns1:documents>
>     </ns1:compositeCreateDocument>
> </soapenv:Body>
> </soapenv:Envelope>
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225--

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-2541) MTOM not using references for array of DataHandlers

Posted by "Valerie Masin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Valerie Masin updated AXIS2-2541:
---------------------------------

    Attachment: DocHarborWebServices.java
                composite.wsdl

Attached is the wsdl and a client that calls the service.
I will attach the 2 files it sends in a subsequent attachment.

> MTOM not using references for array of DataHandlers
> ---------------------------------------------------
>
>                 Key: AXIS2-2541
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2541
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.1.1
>         Environment: Client is written in java and running on Windows XP
>            Reporter: Valerie Masin
>         Attachments: composite.wsdl, DocHarborWebServices.java
>
>
> One of my datatypes is an array of DataHandlers (DataHandler[]). (I got the wsdl to generate this by setting my base64Binary's maxOccurs to unbounded)
>  
> When I set the client to use MTOM I had expected to see each of these base64Binary objects as separate references to entities outside the soap message. However, when viewing the soap message with tcpmon, they are being sent 'by value'. If I don't use an array then the binary data is sent correctly outside the soap message.
>  
> Here is what I see (reformatted for clarity). Under <ns1:documents> the document (which is only 8 bytes) is embedded in the message rather than referencing outside. 
>  
> POST /webservices2_0e/services/DocHarborServices HTTP/1.1
> SOAPAction: "urn:compositeCreateDocument"
> User-Agent: Axis2
> Host: us00wl00.devportal.net:30004
> Content-Length: 691
> Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225; type="application/xop+xml"; start="<0....@apache.org>"; start-info="text/xml"; charset=UTF-8
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225
> content-type: application/xop+xml; charset=UTF-8; type="text/xml";
> content-transfer-encoding: binary
> content-id: <0....@apache.org>
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
> <soapenv:Body>
>     <ns1:compositeCreateDocument xmlns:ns1="urn:webservices.docharbor.com">
>         <ns1:user>idsuser</ns1:user>
>         <ns1:documents>MTIzLS0tLTENCg==</ns1:documents>
>         <ns1:documents>MTIzLS0tLTINCg==</ns1:documents>
>     </ns1:compositeCreateDocument>
> </soapenv:Body>
> </soapenv:Envelope>
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225--

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-2541) MTOM not using references for array of DataHandlers

Posted by "Glen Daniels (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12503572 ] 

Glen Daniels commented on AXIS2-2541:
-------------------------------------

Woops, didn't see that attachment for some reason!  Sorry, serves me right for talking an JIRA-ing at the same time. :)


> MTOM not using references for array of DataHandlers
> ---------------------------------------------------
>
>                 Key: AXIS2-2541
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2541
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.1.1
>         Environment: Client is written in java and running on Windows XP
>            Reporter: Valerie Masin
>            Assignee: Thilina Gunarathne
>         Attachments: composite.wsdl, DocHarborWebServices.java, file123-1.txt, file123-2.txt
>
>
> One of my datatypes is an array of DataHandlers (DataHandler[]). (I got the wsdl to generate this by setting my base64Binary's maxOccurs to unbounded)
>  
> When I set the client to use MTOM I had expected to see each of these base64Binary objects as separate references to entities outside the soap message. However, when viewing the soap message with tcpmon, they are being sent 'by value'. If I don't use an array then the binary data is sent correctly outside the soap message.
>  
> Here is what I see (reformatted for clarity). Under <ns1:documents> the document (which is only 8 bytes) is embedded in the message rather than referencing outside. 
>  
> POST /webservices2_0e/services/DocHarborServices HTTP/1.1
> SOAPAction: "urn:compositeCreateDocument"
> User-Agent: Axis2
> Host: us00wl00.devportal.net:30004
> Content-Length: 691
> Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225; type="application/xop+xml"; start="<0....@apache.org>"; start-info="text/xml"; charset=UTF-8
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225
> content-type: application/xop+xml; charset=UTF-8; type="text/xml";
> content-transfer-encoding: binary
> content-id: <0....@apache.org>
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
> <soapenv:Body>
>     <ns1:compositeCreateDocument xmlns:ns1="urn:webservices.docharbor.com">
>         <ns1:user>idsuser</ns1:user>
>         <ns1:documents>MTIzLS0tLTENCg==</ns1:documents>
>         <ns1:documents>MTIzLS0tLTINCg==</ns1:documents>
>     </ns1:compositeCreateDocument>
> </soapenv:Body>
> </soapenv:Envelope>
> --MIMEBoundaryurn_uuid_FA25913A7339BC61F81176744499225--

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org