You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Akitoshi Yoshida (JIRA)" <ji...@apache.org> on 2015/06/02 13:57:18 UTC
[jira] [Resolved] (CXF-6430) SwA: Wrong Content-Type of root part
[ https://issues.apache.org/jira/browse/CXF-6430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Akitoshi Yoshida resolved CXF-6430.
-----------------------------------
Resolution: Fixed
Fix Version/s: 2.7.17
3.0.6
3.1.1
Hi Christian,
This issue should have been fixed with CXF-6431. Please refer to this ticket for the details on the corrected behavior. If your problem still persists, please reopen this ticket.
Thanks.
regards, aki
> SwA: Wrong Content-Type of root part
> ------------------------------------
>
> Key: CXF-6430
> URL: https://issues.apache.org/jira/browse/CXF-6430
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 3.0.1
> Reporter: Christian Koch
> Assignee: Akitoshi Yoshida
> Fix For: 3.1.1, 3.0.6, 2.7.17
>
>
> we are implementing an ebMS3 solution using cxf 3. The profile to be implemented has the following requirements:
> - SwA (no MTOM)
> - SOAP 1.2
> - Due to the design of ebMS3 there is no WSDL
> As there is no WSDL we use the javax.xml.ws.Dispatch API with SOAPBinding.SOAP12HTTP_BINDING as binding. The message ebMS3 expects, according to its specification looks as follows:
> Content-Type: Multipart/Related; boundary=MIME_boundary;
> type=application/soap+xml;
> start="<ca...@cars.example.com>"
> --MIME_boundary
> Content-Type: application/soap+xml; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> Content-ID: <ca...@cars.example.com>
> <?xml version='1.0' ?>
> <S12:Envelope xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
> .
> .
> .
> </S12:Envelope>
> --MIME_boundary
> Content-Type: image/tiff
> Content-Transfer-Encoding: binary
> Content-ID: <ca...@cars.example.com>
> ...binary TIFF image of the car...
> --MIME_boundary--
> However, what we produce is as follows:
> Content-Type:multipart/related; type="application/soap+xml"; boundary="MIME_boundary"; start="<ca...@cars.example.com>"; start-info="application/soap+xml"
> Accept:*/*
> User-Agent:Apache CXF 3.0.1
> Cache-Control:no-cache
> Pragma:no-cache
> Host:127.0.0.1:8080
> Connection:keep-alive
> --MIME_boundary
> Content-Type: text/xml; charset=UTF-8; type="application/soap+xml"
> Content-Transfer-Encoding: binary
> Content-ID: <ca...@cars.example.com>
> <?xml version='1.0' ?>
> <S12:Envelope xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
> .
> .
> .
> </S12:Envelope>
> --MIME_boundary
> Content-Type: image/tiff
> Content-Transfer-Encoding: binary
> Content-ID: <ca...@cars.example.com>
> ...binary TIFF image of the car...
> -- MIME_boundary--
> The difference lies in the Content-Type of the root part, which is expected as application/soap+xml but set to text/xml. When testing against an Axis driven implementation we get the following error:
> Error while executing the transport Method RuntimeException: Invalid Content-Type: text/xml; charset=UTF-8; type="application/soap+xml"
> Our dispatch method looks like this:
> public SOAPMessage dispatch(final SOAPMessage soapMessage) {
> final QName serviceName = new QName("http://example.com", "msh-dispatch-service");
> final QName portName = new QName("http://example.com", "msh-dispatch");
> final javax.xml.ws.Service service = javax.xml.ws.Service.create(serviceName);
> service.addPort(portName, SOAPBinding.SOAP12HTTP_BINDING, "127.0.0.1:8080");
> Dispatch<SOAPMessage> dispatch = service.createDispatch(portName, SOAPMessage.class, javax.xml.ws.Service.Mode.MESSAGE);
> Policy policy = policyFactory.parsePolicy("mypolicy.xml");
> dispatch.getRequestContext().put(PolicyConstants.POLICY_OVERRIDE, policy);
> SOAPMessage result = dispatch.invoke(soapMessage);
> return result;
> }
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)