On Feb 18, 2013, at 8:51 AM, Aki Yoshida <[email protected]> wrote: > 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?
Well, to me, if we can, I'd have this throw and exception at startup time as you are adding a feature that is incompatible with JAX-RS onto a JAX-RS service. That's likely considered a configuration error and trapped at startup. Dan > > 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 -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
