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