[ https://issues.apache.org/jira/browse/AXIS2-4602?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andreas Veithen updated AXIS2-4602: ----------------------------------- Fix Version/s: (was: 1.8.0) > JAX-WS MTOM issue > ----------------- > > Key: AXIS2-4602 > URL: https://issues.apache.org/jira/browse/AXIS2-4602 > Project: Axis2 > Issue Type: Bug > Components: jaxws > Affects Versions: 1.7.0 > Reporter: Isuru Suriarachchi > Priority: Major > Attachments: jaxws-mtom-fix.txt > > > In Axis2 JAX-WS implementation, org.apache.axis2.jaxws.message.Block is > extending OMDataSourceExt. In the response messages of normal invocations, > this object is kept inside the body of the SOAPEnvelope and directly > serialized without building the OMElement. In order to handle MTOM, it uses > the JAXBAttachmentMarshaller which writes data handler objects into the > MTOMXMLStreamWriter. > MTOM works fine as far as the return OMElement is not built and directly > serialized using the OMDataSource. But if the OMElement is built by some > handler on the return path, JAXB Block is written to a ByteArrayOutputStream > and read as a ByteArray (through the getReader() method of BlockImpl). > Therefore, the OMElement which is built using this ByteArray, doesn't know > about MTOM. So, the response is given as base64 (inline). > So even though the service is MTOM enabled, if some handler (Ex: Security) > builds the body element, the binary response data is transmitted as > base64-encoded inline, instead of as a separate binary attachment (see below > - I remove most of the returned data due to its length): > --MIMEBoundaryurn_uuid_6A41A9AB6F9E3EEAB71262792774662 > Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" > Content-Transfer-Encoding: binary > Content-ID: <0.urn:uuid:6a41a9ab6f9e3eeab71262792774...@apache.org> > <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><dlwmin:getBinaryTestDataResponse > > xmlns:dlwmin="urn:ca.dmf.webservices"><return>f39/f39/f39/f39...</return></dlwmin:getBinaryTestDataResponse></soapenv:Body></soapenv:Envelope> > --MIMEBoundaryurn_uuid_6A41A9AB6F9E3EEAB71262792774662-- -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org