0 Replies Latest reply on Mar 26, 2007 2:35 PM by Janos Biro

    MTOM/SwA enabled file transfer

    Janos Biro Newbie

      Hi,

      My configuration is:

      JBossAS 4.0.5
      JBossWS 1.2.0GA
      EJB3 shipped with JBossAS 4.0.5

      I've tried to publish an EJB3 WS (using contract-first model) with MTOM enabled file transfer as it is proposed by the JBossWS guideline.
      I compiled the WSDL with wsconsume as appropriate and added the following annotations to the EJB3 POJO.

      @Stateless
      @Remote(ETI_Receiver.class)
      @WebService(endpointInterface="generated.wsdl.EMServicesPortType"
       , wsdlLocation="META-INF/wsdl/Services.wsdl"
       , targetNamespace="http://my.com/ws"
       , portName = "EMServicesPort")
      @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING)
      public class ETI_ReceiverBean extends ETI_CommonReceiverServices implements ETI_Receiver {
      


      The endpoint works well, till I try to send send an attachment with MTOM/SwA enabled. The normal attachments are works fine, but if I enable MTOM or simple SwA at client side (Axis2 code, see below)

      EMServicesStub emstub = new EMServicesStub(uri);
       Options options = new Options();
      options.setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
      //options.setProperty(Constants.Configuration.ENABLE_SWA, Constants.VALUE_TRUE);
      emstub._getServiceClient().setOptions(options);
      


      it drops a SOAPRequest exception

      2007-03-26 20:24:06,062 INFO [org.jboss.system.server.Server] JBoss (MX MicroKernel) [4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)] Started in 1m:16s:344ms
      2007-03-26 20:25:10,234 DEBUG [org.jboss.ws.core.server.AbstractServiceEndpointServlet] doPost: /ETI-ETI_Framework/ETI_ReceiverBean
      2007-03-26 20:25:10,250 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] pushMessageContext: org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS@e0e9d5 (Thread http-0.0.0.0-8080-1)
      2007-03-26 20:25:10,250 DEBUG [org.jboss.ws.core.server.ServiceEndpoint] BEGIN handleRequest: jboss.ws:context=ETI-ETI_Framework,endpoint=ETI_ReceiverBean
      2007-03-26 20:25:10,312 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] createMessage: [contentType=multipart/related;
       boundary=MIMEBoundaryurn_uuid_6BC0C2D8E13C69924211749335100931;
       type="application/xop+xml";
       start="<0.urn:uuid:6BC0C2D8E13C69924211749335100932@apache.org>";
       start-info="text/xml"; charset=UTF-8]
      2007-03-26 20:25:10,343 DEBUG [org.jboss.ws.core.soap.attachment.SwapableMemoryDataSource] Using memory buffer, size = 8044
      2007-03-26 20:25:10,750 DEBUG [org.jboss.ws.metadata.umdm.EndpointMetaData] Configure SOAPBinding
      2007-03-26 20:25:10,750 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
      java.lang.IllegalArgumentException: multipart/related stream invalid, no root part was found
       at org.jboss.ws.core.soap.attachment.MultipartRelatedDecoder.decodeMultipartRelatedMessage(MultipartRelatedDecoder.java:156)
       at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:211)
       at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:171)
       at org.jboss.ws.core.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:185)
       at org.jboss.ws.core.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:440)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
       at java.lang.Thread.run(Thread.java:595)
      


      Could you help me a little how to solve this issue? Any idea?

      Thanks a lot for your help in advance,
      Bye,
      Janos