Hi,
I create a Restful web service (POST method, application/xml) based on CXF.
It works well when I call it by posting XML data directly using HTTP tool.
However, I try to use CXF JAX-RS Client API, I get the SoapFault.
The API code looks like:
WebClient client =
WebClient.create("http://localhost:8080/myService/");
String path = "myMethod";
MyRequest request = new MyRequest ();
Response rp =
client.path(path).accept(MediaType.APPLICATION_XML).post(request);
In the cxf log in server side, there is error:
2011-05-11 16:43:50,601 PDT [] [http-8080-1] WARN LogUtils - Interceptor
for {http://api.webservice.paygateway.com/}ParallelPayImplService has thrown
exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: "http://api.webservice.xxx.com/", the
namespace on the "myRequest" element, is not a valid SOAP version.
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:131)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:60)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
at
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
My question is:
1. Why SOAP related error happen when I try to call a Restful service. My
understanding is that Restful web service has no any relationship with SOAP.
2. Any idea to address the problem above?
Thanks
--
View this message in context:
http://cxf.547215.n5.nabble.com/CXF-Restful-Client-calls-causes-SoapFault-in-server-side-tp4388904p4388904.html
Sent from the cxf-user mailing list archive at Nabble.com.