You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Liu Cong (JIRA)" <ji...@apache.org> on 2009/05/07 05:28:33 UTC

[jira] Issue Comment Edited: (CXF-1760) jms transport don't support MTOM

    [ https://issues.apache.org/jira/browse/CXF-1760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12706704#action_12706704 ] 

Liu Cong edited comment on CXF-1760 at 5/6/09 8:27 PM:
-------------------------------------------------------

If the config <jms:client messageType="byte"/> doesn't appear in the WSDL of the service, the JMS Transport will send MTOM message as TextMessage.
Thought the client send attachement information and the server get the attachment information, the attachment which is got by the server is not the same with the attachment information which is sent by the client.
I have compared the two messages. And I have used several kinds of attatchment for it.
    1) Text File. The result is right.
    2) WinRaR File. The file that is received by the server is larger than the file that is sent by the client.
    3) BitMap file. The size of attachment that is sent by the client is 163166, but the size of attachment that is received is 485947, which is 167% more than the original binary data. (http://www.w3.org/TR/2008/WD-soapjms-20081121/#binding-message-body)
According to the analysis above, reason may be as follows:
    1) In the client, the attachment is encoded as base64 encoding, and transfer as TextMessage in JMS.
    2) The server doesn't know the encoding, and just get the text message.

So if one wants to use JMS MTOM-support, the config <jms:client messageType="byte"/> must be set, then the MTOM message will be sent as ByteMessage. 
Some fixed for these should be done in CXF.

      was (Author: liucong):
    If the config <jms:client messageType="byte"/> doesn't appear in the WSDL of the service, the JMS Transport will send MTOM message as TextMessage.
Thought the client send attachement information and the server get the attachment information, the attachment which is got by the server is not the same with the attachment information which is sent by the client.
I have compared the two messages. And I have used several kinds of attatchment for it.
    1) Text File. The result is right.
    2) WinRaR File. The file that is received by the server is larger than the file that is sent by the client.
    3) BitMap file. The size of attachment that is sent by the client is 163166, but the size of attachment that is received is 485947, which is 167% more than the original binary data. (http://www.w3.org/TR/2008/WD-soapjms-20081121/#binding-message-body)
According to the analysis above, reason may be as follows:
    1) In the client, the attachment is encoded as base64 encoding, and transfer as TextMessage in JMS.
    2) The server doesn't know the encoding, and just get the text message.

So if one wants to use JMS MTOM-support, the config <jms:client messageType="byte"/> must be set, then the MTOM message will be sent as ByteMessage.
  
> jms transport don't support MTOM
> --------------------------------
>
>                 Key: CXF-1760
>                 URL: https://issues.apache.org/jira/browse/CXF-1760
>             Project: CXF
>          Issue Type: Bug
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>             Fix For: 2.0.9, 2.1.3
>
>
> mtom can't work over jms transport because miss content-type in the protocol header, but the content-type is important for AttachmentInIntecepor to parse the attachment in the message

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