自升级到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

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

我想念什么?

最佳答案

我从来没有找到一个真正令人满意的答案,但是当我用wsdl2cxf生成的现有客户端接口(interface)替换了现有的客户端接口(interface)时,该问题就解决了。这还涉及从Xbeans迁移到JAXB进行编码(marshal)处理,这可能与它有关。

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

@EndpointProperty(key = "soap.no.validate.parts", value = "true")

10-06 09:44