CXF 2.7.7 org.apache.cxf.interceptor.Fault:意外元素

rjs*_*ang 5 java web-services cxf

自升级到CXF 2.7.7以来,我遇到了我无法理解的错误。进行Web服务调用时,CXF报告此异常:

org.apache.cxf.interceptor.Fault: 
Unexpected element {http://schema.myorg.com/GetReference/}ReferenceResponse found.
Expected {http://services.myorg.com/}getReferences
Run Code Online (Sandbox Code Playgroud)

这没有任何意义,因为ReferenceResponse正是我期望的响应。名称getReferences似乎是指被调用的@WebMethod批注方法的名称。此方法的返回类型为ReferenceResponse。

我想念什么?

rjs*_*ang 4

我从来没有找到一个真正令人满意的答案,但是,当我用 wsdl2cxf 生成的界面替换现有的客户端界面时,这个问题就解决了。这还涉及从 Xbeans 迁移到 JAXB 进行封送,这可能与此有关。

但是,在此期间向接口添加以下注释可以防止该错误。

@EndpointProperty(key = "soap.no.validate.parts", value = "true")
Run Code Online (Sandbox Code Playgroud)

  • 感谢这篇文章,很有帮助。如果您也像我一样生成接口,并且您不想在每次重新生成时继续编辑接口,那么我将添加它,您可以在使用端口的任何地方内联执行此操作:port.getRequestContext() .put("soap.no.validate.parts", "true"); (2认同)