On Tue February 16 2010 12:50:44 pm kiffin wrote:
> Dan,
> 
> I am using the Endpoint class in my unit test. Could I call the
> setProperties method with this property?

I think so, yes.   You may need to to do it before the call to publish though.  
 
Basically, do ep = Endpoint.create(...) and then ep.publish(addr) as separate 
steps with the ep.setProeprties stuff in the middle.

Dan


> 
> Thanks,
> Kiffin
> 
> dkulp wrote:
> > You can give this a try, but a caveat in that I've never tried this so I
> > don't
> > know what the resulting soap message looks like:
> > 
> > If you set a property on the endpoint like:
> > <jaxws:properties>
> > 
> >     <entry key="faultStackTraceEnabled" value="true" />
> > 
> > </jaxws:properties>
> > 
> > the the SOAP out interceptors will stick a stack trace into the fault.
> > Not
> > exactly sure what that ends up looking like.
> > 
> > Dan
> > 
> > On Fri February 12 2010 5:58:05 pm kiffin wrote:
> >> 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.du
> >> 
> >> >> m
> >> >> 
> >> >> > 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

Reply via email to