renshanshan 发表于 2017-1-6 09:58:14

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

  搭建了一个SpringMVC + Mybatis +Tiles +Ehcache + JBPM + Apache CXF +Shiro + Rest ful 框架
  在整合的时候CXF框架时候报了如下错误:
  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)
  Adding interceptor org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor@d6d53c to phase pre-protocol
  Adding interceptor org.apache.cxf.interceptor.MessageSenderInterceptor@4986c8 to phase prepare-send
  Adding interceptor org.apache.cxf.interceptor.StaxOutInterceptor@12feafc to phase pre-stream
  Adding interceptor org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@ec46ff to phase write
  Adding interceptor org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@294944 to phase write
  Adding interceptor org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor@8923f5 to phase prepare-send
  Chain org.apache.cxf.phase.PhaseInterceptorChain@197c1b1 was created. Current flow:
  prepare-send
  pre-stream
  pre-protocol
  write
  解决方案:
  原因是cxf中定义的web service接口的包的路径与客户端不一致导致.
  我定义的服务器端包路径为:interfaces.cxf.services.common.com
  而客户端是:interfaces.webservices.admin.common.com 改成一致即可.
页: [1]
查看完整版本: org.apache.cxf.interceptor.Fault: Unexpected wrapper element {xxx}