David J. M. Karlsen created CXF-7136:
----------------------------------------
Summary: soapfault mixed with response
Key: CXF-7136
URL: https://issues.apache.org/jira/browse/CXF-7136
Project: CXF
Issue Type: Bug
Components: JAXB Databinding
Affects Versions: 3.1.7
Environment: RHEL Linux, kern 3.10.0-229.1.2.el7.x86_64
java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Reporter: David J. M. Karlsen
we get this fault due to invalid chars attempted to being marshalled (which is
obviosly a problem at our shoulders, but - what I see as the bug - is that the
Fault XML is intermixed with the response streaming - hence the client is not
able to parse the fault as the sudden appering of a soap:fault element inside
the expected response payload is not expected:
application log:
{noformat}
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Invalid white space character (0x1) in text
to output (in xml 1.1, could output as a character entity)
at
org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:154)
at
org.apache.cxf.wsdl.interceptors.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:254)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:299)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:218)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:274)
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1689)
{noformat}
from the payload log (using the ext-logger "modern" payload logging mechanism:
{noformat}
.FAULT_OUT - <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>……
<ns6:name><soap:Fault><faultcode>soap:Server</faultcode><faultstring>Invalid
white space character (0x1) in text to output (in xml 1.1, could output as a
character
entity)</faultstring></soap:Fault></ns6:name></ns2:creditor></ns2:creditorInformation></ns4:creditorInformation></ns4:CreditorSearchResponse></soap:Body></soap:Envelope>
{noformat}
Notice: we have the <ns6:name> element (which is the element causing the
illegal char) - and then the fault follows - and then the rest of the element!
What I'd rather expect is that the service raised an fault - and not any of the
contents.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)