org.apache.cxf.interceptor.Fault: Unexpected wrapper element {xxx}

搭建了一个SpringMVC + Mybatis +Tiles +Ehcache + JBPM + Apache CXF +Shiro + Rest ful 框架

在整合的时候CXF框架时候报了如下错误:

[org.apache.cxf.phase.PhaseInterceptorChain]Interceptor for {http://impl.cxf.services.common.com/}HelloWorldImplService#{http://interfaces.cxf.services.common.com/}sayHello has thrown exception, unwinding now

org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://interfaces.webservices.admin.common.com/}sayHello found.   Expected {http://interfaces.cxf.services.common.com/}sayHello.

at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:106)

at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)

at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)

at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:207)

at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)

at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)

at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:185)

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:108)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:164)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at com.common.core.busi.other.filter.SessionFilter.doFilterInternal(SessionFilter.java:85)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:662)

[org.apache.cxf.phase.PhaseInterceptorChain]Adding interceptor org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor@d6d53c to phase pre-protocol

[org.apache.cxf.phase.PhaseInterceptorChain]Adding interceptor org.apache.cxf.interceptor.MessageSenderInterceptor@4986c8 to phase prepare-send

[org.apache.cxf.phase.PhaseInterceptorChain]Adding interceptor org.apache.cxf.interceptor.StaxOutInterceptor@12feafc to phase pre-stream

[org.apache.cxf.phase.PhaseInterceptorChain]Adding interceptor org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@ec46ff to phase write

[org.apache.cxf.phase.PhaseInterceptorChain]Adding interceptor org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@294944 to phase write

[org.apache.cxf.phase.PhaseInterceptorChain]Adding interceptor org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor@8923f5 to phase prepare-send

[org.apache.cxf.phase.PhaseInterceptorChain]Chain org.apache.cxf.phase.PhaseInterceptorChain@197c1b1 was created. Current flow:

  prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor]

  pre-stream [StaxOutInterceptor]

  pre-protocol [WebFaultOutInterceptor]

  write [SoapOutInterceptor]

解决方案:

原因是cxf中定义的web service接口的包的路径与客户端不一致导致.

我定义的服务器端包路径为:interfaces.cxf.services.common.com

而客户端是:interfaces.webservices.admin.common.com 改成一致即可.

猜你喜欢

转载自zhouhaitao.iteye.com/blog/2232329