Issue Details (XML | Word | Printable)

Key: MULE-3298
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Critical Critical
Assignee: Dan Diephouse
Reporter: Dan Diephouse
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Mule

MuleProtocolHeaders is not added to the out fault interceptors

Created: 02/May/08 08:09 PM   Updated: 02/May/08 08:15 PM
Component/s: Transport: CXF / XFire
Affects Version/s: 2.0.1
Fix Version/s: 2.0.2

Time Tracking:
Not Specified

Labels:
User impact: High


 Description  « Hide
The MuleProtocolHeadersOutInterceptor is not being added to the fault chain, meaning the protocol headers such as the Content-Type are not being written.

From the mailing list:
I'm using Mule 2.0.1 with CXF transport, Aegis databinding
(frontend="simple").

Exception strategy for each service =
org.mule.transport.cxf.CxfComponentExceptionStrategy

Trying to migrate services from XFire. I'm having a problem when CXF throws
a Fault message- the encoding is set to plain/text rather than plain/xml.
Normal soap responses are fine, only Faults have this problem.

My client application is using Jaxws and as a result of this cannot catch
exceptions, it reports:

Could not access remote service at
[snip]
nested exception is com.sun.xml.ws.server.UnsupportedMediaException:
Unsupported Content-Type: text/plain Supported ones are: [text/xml]
Caused by: com.sun.xml.ws.server.UnsupportedMediaException: Unsupported
Content-Type: text/plain Supported ones are: [text/xml]

I have used the SoapUI tool to check this and it confirms that Faults have
text/plain encoding.

Not sure whether this is a CXF or Mule problem, or whether it's a known
issue, can anyone advise?



 All   Comments   Work Log   Change History   Transitions   FishEye      Sort Order: Ascending order - Click to sort in descending order
Dan Diephouse added a comment - 02/May/08 08:11 PM
There is an easy workaround for this issue. All you need to do is add the MuleProtocolHeadersOutInterceptor to the outgoing fault interceptors:

<cxf:inbound-endpoint ....>
<cxf:outFaultInterceptors>
<spring:bean class="org.mule.transport.cxf.suppot.MuleProtocolHeadersOutInterceptor">
</cxf:outFaultInterceptors>
</cxf:inbound-endpoint>


Dan Diephouse added a comment - 02/May/08 08:15 PM