Java 对策略的引用#寻址策略无法解决错误

Java 对策略的引用#寻址策略无法解决错误,java,apache,client,cxf,Java,Apache,Client,Cxf,我正在使用ApacheCXF2.5.0、JDK7和EclipseHeliosEE开发一个web服务客户端。 当我在eclipse中执行web服务客户机时,我得到了以下错误 线程“main”javax.xml.ws.soap.SOAPFaultException中的异常:无法解析对策略的引用#AddressingPolicy 到目前为止,我已经按照以下步骤部署客户端 在EclipseHeliosEE中创建了一个java项目,并将CXF运行时添加到该项目中 使用Apache CXF 2.5.0 WS

我正在使用ApacheCXF2.5.0、JDK7和EclipseHeliosEE开发一个web服务客户端。 当我在eclipse中执行web服务客户机时,我得到了以下错误

线程“main”javax.xml.ws.soap.SOAPFaultException中的异常:无法解析对策略的引用#AddressingPolicy

到目前为止,我已经按照以下步骤部署客户端

  • 在EclipseHeliosEE中创建了一个java项目,并将CXF运行时添加到该项目中

  • 使用Apache CXF 2.5.0 WSDL2Java为客户机生成java类(包括-exsh true选项以处理标头)。这些类是在EclipseSrc目录中生成的

  • 在客户端类中实现main方法来调用web服务

  • 当我执行客户机时,我得到上面的异常

    我检查了WSDL,它在绑定元素中有一个xml id=#AddressingPolicy的策略引用元素和另一个xml id=#TlsPolicy的策略引用元素。WSDL中使用wsp:Policy元素在WSDL末尾给出了相应的策略

    我无法修改WSDL,因为它已经作为外部服务部署,并提供给我用于开发客户机

    以前是否有人在Apache CXF 2.5.0中遇到过类似的问题。另外,我觉得这可能是我使用的CXF版本的问题。Apache CXF 2.5.0是否支持WSDL中的本地策略引用


    感谢您的回复。

    我也有同样的问题。我找到的修复方法是修改WSDL并使用wsu:Id引用,而不是xml:Id

    <wsp:Policy wsu:Id="AddressingPolicy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
       <...>
    </wsp:Policy>
    
    
    

    我知道你说过你不能改变WSDL,但我相信这不是真的。我所提到的修改不会改变网络上SOAP请求/响应的内容,因此您应该仍然能够与现有web服务进行互操作。

    谢谢。我将尝试进行此更改,并让您知道。我尝试对WSDL进行上述更改,但在CXF创建服务时仍然会遇到与以前相同的错误。现在,我的寻址策略WSDL如下所示。