Hi,
you mean we should do the catch in unwind so that we can continue
unwinding if this kind of exception is thrown during unwinding?

I think that would makes sense. I saw today that the unwind method
stops unwinding when a runtime exception is thrown.

any comments from others?

thanks.
regards, aki

2013/2/18 XiLai Dai <[email protected]>:
> Hi,
>
> There is a jaxrs server defined like this in spring:
>          <jaxrs:server id="orderRESTService" address="/rest"
>               xmlns:serviceNamespace="http://common.demo/";
>          serviceName="serviceNamespace:OrderService">
>                    <jaxrs:serviceBeans>
>                             <ref bean="orderService" />
>                    </jaxrs:serviceBeans>
>          </jaxrs:server>
>
> It works well but will throw ClassCastException when adding wsa:addressing 
> feature into <jaxrs:server>:
>                    <jaxrs:features>
>                             <wsa:addressing 
> xmlns:wsa="http://cxf.apache.org/ws/addressing"/>
>                    </jaxrs:features>
>
> The exception looks like:
> Caused by: java.lang.ClassCastException: org.apache.cxf.message.XMLMessage 
> cannot be cast to org.apache.cxf.binding.soap.SoapMessage
>          at 
> org.apache.cxf.ws.addressing.soap.MAPCodec.handleFault(MAPCodec.java:78)
>          at 
> org.apache.cxf.phase.PhaseInterceptorChain.unwind(PhaseInterceptorChain.java:440)
>          at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:306)
>          at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>          at 
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
>          at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:218)
>          at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:163)
>          at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
>          at 
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
>          at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
>          at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:168)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
>          at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
>          ... 32 more
>
> I know for REST service it makes no sense adding WS-Addressing support, but 
> maybe MAPCodec should be made some improvement to check in this case?
>
> Thanks!
> Xilai

Reply via email to