You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "David J. M. Karlsen (JIRA)" <ji...@apache.org> on 2016/11/16 12:36:58 UTC

[jira] [Created] (CXF-7136) soapfault mixed with response

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)