That response message was from running a test using the CXF stack. The
message below is from the Sun stack running the same test. We need to do
some post-processing on service exception and need to know the root cause of
that exception.

Thanks,
Kiffin

<?xml version="1.0" standalone="no"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";>
    <S:Body>
        <ns2:Fault xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns3="http://www.w3.org/2003/05/soap-envelope";>
            <faultcode>
                ns2:Server
            </faultcode>
            <faultstring>
                java.lang.RuntimeException: Mock up exception
            </faultstring>
            <detail>
                <ns2:exception xmlns:ns2="http://jax-ws.dev.java.net/";
class="com.expd.arch.service.ServiceException" note="To disable this
feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace
system property to false">
                    <message>
                        java.lang.RuntimeException: Mock up exception
                    </message>
                    <ns2:stackTrace>
                        <ns2:frame
class="com.expd.arch.service.ServiceException" file="ServiceException.java"
line="101" method="wrap"/>
                        <ns2:frame
class="com.expd.service.calculation.impl.CalculationService"
file="CalculationService.java" line="134" method="throwExceptionInMethod"/>
                        <ns2:frame
class="sun.reflect.NativeMethodAccessorImpl"
file="NativeMethodAccessorImpl.java" line="native" method="invoke0"/>
                        <ns2:frame
class="sun.reflect.NativeMethodAccessorImpl"
file="NativeMethodAccessorImpl.java" line="39" method="invoke"/>
                        <ns2:frame
class="sun.reflect.DelegatingMethodAccessorImpl"
file="DelegatingMethodAccessorImpl.java" line="25" method="invoke"/>
                        <ns2:frame class="java.lang.reflect.Method"
file="Method.java" line="597" method="invoke"/>
                        <ns2:frame
class="com.sun.xml.ws.api.server.InstanceResolver$1"
file="InstanceResolver.java" line="246" method="invoke"/>
                        <ns2:frame
class="com.sun.xml.ws.server.InvokerTube$2" file="InvokerTube.java"
line="146" method="invoke"/>
                        <ns2:frame
class="com.sun.xml.ws.server.sei.EndpointMethodHandler"
file="EndpointMethodHandler.java" line="257" method="invoke"/>
                        <ns2:frame
class="com.sun.xml.ws.server.sei.SEIInvokerTube" file="SEIInvokerTube.java"
line="93" method="processRequest"/>
                        <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="598" method="__doRun"/>
                        <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="557" method="_doRun"/>
                        <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="542" method="doRun"/>
                        <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="439" method="runSync"/>
                        <ns2:frame
class="com.sun.xml.ws.server.WSEndpointImpl$2" file="WSEndpointImpl.java"
line="243" method="process"/>
                        <ns2:frame
class="com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit"
file="HttpAdapter.java" line="444" method="handle"/>
                        <ns2:frame
class="com.sun.xml.ws.transport.http.HttpAdapter" file="HttpAdapter.java"
line="244" method="handle"/>
                        <ns2:frame
class="com.sun.xml.ws.transport.http.server.WSHttpHandler"
file="WSHttpHandler.java" line="106" method="handleExchange"/>
                        <ns2:frame
class="com.sun.xml.ws.transport.http.server.WSHttpHandler"
file="WSHttpHandler.java" line="91" method="handle"/>
                        <ns2:frame
class="com.sun.net.httpserver.Filter$Chain" file="Filter.java" line="65"
method="doFilter"/>
                        <ns2:frame class="sun.net.httpserver.AuthFilter"
file="AuthFilter.java" line="65" method="doFilter"/>
                        <ns2:frame
class="com.sun.net.httpserver.Filter$Chain" file="Filter.java" line="68"
method="doFilter"/>
                        <ns2:frame
class="sun.net.httpserver.ServerImpl$Exchange$LinkHandler"
file="ServerImpl.java" line="555" method="handle"/>
                        <ns2:frame
class="com.sun.net.httpserver.Filter$Chain" file="Filter.java" line="65"
method="doFilter"/>
                        <ns2:frame
class="sun.net.httpserver.ServerImpl$Exchange" file="ServerImpl.java"
line="527" method="run"/>
                        <ns2:frame
class="java.util.concurrent.ThreadPoolExecutor$Worker"
file="ThreadPoolExecutor.java" line="886" method="runTask"/>
                        <ns2:frame
class="java.util.concurrent.ThreadPoolExecutor$Worker"
file="ThreadPoolExecutor.java" line="908" method="run"/>
                        <ns2:frame class="java.lang.Thread"
file="Thread.java" line="619" method="run"/>
                    </ns2:stackTrace>
                    <ns2:cause class="java.lang.RuntimeException" note="To
disable this feature, set
com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system
property to false">
                        <message>
                            Mock up exception
                        </message>
                        <ns2:stackTrace>
                            <ns2:frame
class="com.expd.service.calculation.impl.CalculationService"
file="CalculationService.java" line="126" method="throwRuntimeException"/>
                            <ns2:frame
class="com.expd.service.calculation.impl.CalculationService"
file="CalculationService.java" line="132" method="throwExceptionInMethod"/>
                            <ns2:frame
class="sun.reflect.NativeMethodAccessorImpl"
file="NativeMethodAccessorImpl.java" line="native" method="invoke0"/>
                            <ns2:frame
class="sun.reflect.NativeMethodAccessorImpl"
file="NativeMethodAccessorImpl.java" line="39" method="invoke"/>
                            <ns2:frame
class="sun.reflect.DelegatingMethodAccessorImpl"
file="DelegatingMethodAccessorImpl.java" line="25" method="invoke"/>
                            <ns2:frame class="java.lang.reflect.Method"
file="Method.java" line="597" method="invoke"/>
                            <ns2:frame
class="com.sun.xml.ws.api.server.InstanceResolver$1"
file="InstanceResolver.java" line="246" method="invoke"/>
                            <ns2:frame
class="com.sun.xml.ws.server.InvokerTube$2" file="InvokerTube.java"
line="146" method="invoke"/>
                            <ns2:frame
class="com.sun.xml.ws.server.sei.EndpointMethodHandler"
file="EndpointMethodHandler.java" line="257" method="invoke"/>
                            <ns2:frame
class="com.sun.xml.ws.server.sei.SEIInvokerTube" file="SEIInvokerTube.java"
line="93" method="processRequest"/>
                            <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="598" method="__doRun"/>
                            <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="557" method="_doRun"/>
                            <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="542" method="doRun"/>
                            <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
file="Fiber.java" line="439" method="runSync"/>
                            <ns2:frame
class="com.sun.xml.ws.server.WSEndpointImpl$2" file="WSEndpointImpl.java"
line="243" method="process"/>
                            <ns2:frame
class="com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit"
file="HttpAdapter.java" line="444" method="handle"/>
                            <ns2:frame
class="com.sun.xml.ws.transport.http.HttpAdapter" file="HttpAdapter.java"
line="244" method="handle"/>
                            <ns2:frame
class="com.sun.xml.ws.transport.http.server.WSHttpHandler"
file="WSHttpHandler.java" line="106" method="handleExchange"/>
                            <ns2:frame
class="com.sun.xml.ws.transport.http.server.WSHttpHandler"
file="WSHttpHandler.java" line="91" method="handle"/>
                            <ns2:frame
class="com.sun.net.httpserver.Filter$Chain" file="Filter.java" line="65"
method="doFilter"/>
                            <ns2:frame class="sun.net.httpserver.AuthFilter"
file="AuthFilter.java" line="65" method="doFilter"/>
                            <ns2:frame
class="com.sun.net.httpserver.Filter$Chain" file="Filter.java" line="68"
method="doFilter"/>
                            <ns2:frame
class="sun.net.httpserver.ServerImpl$Exchange$LinkHandler"
file="ServerImpl.java" line="555" method="handle"/>
                            <ns2:frame
class="com.sun.net.httpserver.Filter$Chain" file="Filter.java" line="65"
method="doFilter"/>
                            <ns2:frame
class="sun.net.httpserver.ServerImpl$Exchange" file="ServerImpl.java"
line="527" method="run"/>
                            <ns2:frame
class="java.util.concurrent.ThreadPoolExecutor$Worker"
file="ThreadPoolExecutor.java" line="886" method="runTask"/>
                            <ns2:frame
class="java.util.concurrent.ThreadPoolExecutor$Worker"
file="ThreadPoolExecutor.java" line="908" method="run"/>
                            <ns2:frame class="java.lang.Thread"
file="Thread.java" line="619" method="run"/>
                        </ns2:stackTrace>
                    </ns2:cause>
                </ns2:exception>
            </detail>
        </ns2:Fault>
    </S:Body>
</S:Envelope>




dkulp wrote:
> 
> 
> Per spec, the "faultstring" should be the result of
> exception.getMessage().   
> Thus, we output whatever that returns.   Is there any way you can look at
> the 
> sun generated exceptions or something to see if they are doing something
> funky 
> with the getMessage() call?    
> 
> Is the sample below from the CXF test or the Sun test?
> 
> Dan
> 
> 
> On Fri February 12 2010 5:26:51 pm kiffin wrote:
>> I have another question on soap fault. I could see the root cause
>> returning
>> from the soap fault from my Sun JAX-WS service,  but I am not seeing it
>> in
>> the CXF implementation. Is there a way for CXF to return the root cause
>> of
>> the soap fault to a client?  Here's the example response from my test.
>> 
>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>>     <soap:Header/>
>>     <soap:Body>
>>         <soap:Fault>
>>             <faultcode>
>>                 soap:Server
>>             </faultcode>
>>             <faultstring>
>>                 java.lang.RuntimeException: Mock up exception
>>             </faultstring>
>>             <detail>
>>                 <ns1:ServiceException
>> xmlns:ns1="urn:expd.com:service:calculation"/>
>>             </detail>
>>         </soap:Fault>
>>     </soap:Body>
>> </soap:Envelope>
>> 
>> Thanks,
>> Kiffin
>> 
>> dkulp wrote:
>> > On Fri February 12 2010 3:06:52 pm kiffin wrote:
>> >> Hi. I am porting a Sun JAX-WS service to CXF. Sun has a system
>> property
>> >> - com.sun.xml.ws.transport.http.client.HttpTransportPipe.dum - which
>> >> dumps the request/response message on the console. Does CXF have an
>> >> equivalent property to dump the request/response message on the
>> >> console?
>> > 
>> > OK.  Didn't know about that specific property.   Sun seems to have
>> > several properties like that which CXF would respond to, but that one
>> > isn't one. I'll add it.
>> > 
>> > With 2.2.6, you can chose one of:
>> > 
>> > Boolean.getBoolean("org.apache.cxf.logging.enabled");
>> >
>> Boolean.getBoolean("com.sun.xml.ws.transport.local.LocalTransportPipe.dum
>> > p");
>> >
>> Boolean.getBoolean("com.sun.xml.ws.util.pipe.StandaloneTubeAssembler.dum
>> > p");
>> > Boolean.getBoolean("com.sun.xml.ws.transport.http.HttpAdapter.dump");
>> > 
>> > It wouldn't go to the console.  It would go the java.util.logging, but
>> by
>> > default, that would go to the console.
> 
> -- 
> Daniel Kulp
> [email protected]
> http://www.dankulp.com/blog
> 
> 

-- 
View this message in context: 
http://old.nabble.com/com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump-tp27568694p27570542.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to