Yes, I confirmed that. Please feel free to add your comments and patch on the JIRA CXF-1760.
We can add a check point in the JMSConduit.sendExchange() to show some warning or throw the exception if the user forget to add the messageType configuration. Willem liucong wrote: > If the config <jms:client messageType="byte"/> doesn't appear in the > WSDL of the service. The current implementation of JMS Transport will > send MTOM message as TextMessage. So in current implementation, 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. > > Willem Jiang wrote: >> After digging the code, I found we could know if the Message has >> attachments by looking the message in the JMSConduit.sendExchange() >> method. We can tell if the message is MTOM enabled and has the >> attachement message, then we just make sure the JMS Message type is >> BytesMessage that should be OK. >> >> BTW, Freeman did some work to make the JMS transport support MTOM[1] >> >> [1] http://issues.apache.org/jira/browse/CXF-1760 >> >> Willem >> >> Willem Jiang wrote: >> >>> Hi, >>> >>> If we defer the creation of JMS Message until we know the Content-Type >>> for the client, we still need to flight with the miss configuration of >>> MTOM with TextMessage on the server side. >>> >>> Current solution , I discussed with Liu Cong is if the MTOM is enabled, >>> CXF JMS transport will check the configuration of the JMS message type, >>> and make sure the JMS message type is BytesMessage, if not, the JMS >>> transport will throw an Exception for it. >>> >>> Any thought? >>> >>> Willem >>> >>> Daniel Kulp wrote: >>> >>>> On Wed May 6 2009 9:15:54 am Willem Jiang wrote: >>>> >>>>> Hi >>>>> >>>>> I think MTOM message should have the attachment info, we could check >>>>> that for it. We have some trouble to send the MTOM message if we send >>>>> the message in Text model, and Liu Cong is working on the patch. >>>>> >>>> Hmm.... the message won't have the attachment info at "prepare" time. >>>> Whether to switch to mtom/mime or not is done later on, in the >>>> AttachmentOutInterceptor. The actual creation of the JMS message might >>>> need >>>> to be deferred until the first call to write on the cached output stream >>>> or >>>> something. At that point, the Content-Type should be set to the mime >>>> version >>>> and thus could be determined if it needs to be a binary message or not. >>>> >>>> Dan >>>> >>>> >>>> >>>> >>>>> Willem >>>>> >>>>> Daniel Kulp wrote: >>>>> >>>>>> Doesn't it already support MTOM? >>>>>> >>>>>> Basically, it provides a OutputSteam to the dispatching and if the >>>>>> runtime needs to handle attachments and such, it will write it as mime >>>>>> stuff to the stream. >>>>>> >>>>>> Dan >>>>>> >>>>>> On Tue May 5 2009 12:53:48 am liucong wrote: >>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> When I want to add MTOM support for SOAP/JMS, I should know whether a >>>>>>> soap message have an attachment. But I don't know the details how to >>>>>>> judge wheter the message have an attachment. >>>>>>> Is anyone give me any prompt about where the code is? Or some code >>>>>>> example? >>>>>>> >>>>>>> Thank you very much. >>>>>>> >>>>>>> Best regards >>>>>>> >>>>>>> Liu >>>>>>> >>> >> >> > >
