CXF Webservice客户端中WSDL的相对路径

CXF Webservice客户端中WSDL的相对路径,wsdl,cxf,relative-path,Wsdl,Cxf,Relative Path,在我的应用程序中,我使用了许多Web服务。由于WSDL没有改变,我已经在我的项目中集成了WSDL文件。如果使用CXF中的WSDL2Java工具,则WSDL位置绝对路径是硬编码的 现在我的问题是,如何将@WebserviceClient注释中的“wsdlocation”参数更改为相对路径 以下是一个例子: @WebServiceClient(name = "Time", wsdlLocation = "file:/C:/Users/dominik/Docume

在我的应用程序中,我使用了许多Web服务。由于WSDL没有改变,我已经在我的项目中集成了WSDL文件。如果使用CXF中的WSDL2Java工具,则WSDL位置绝对路径是硬编码的

现在我的问题是,如何将@WebserviceClient注释中的“wsdlocation”参数更改为相对路径

以下是一个例子:

@WebServiceClient(name = "Time", 
                  wsdlLocation = "file:/C:/Users/dominik/Documents/NetBeansProjects/Webservices/src/wsdl/Time.wsdl" ) /*I want this path to be relative */
public class Time extends Service {

wsdl2java工具有一个-wsdlLocation标志,可用于指定放置在其中的确切字符串

下面是生成空wsdl位置的方法

<wsdlOptions>
  <wsdlOption>
    <wsdl>${basedir}/src/main/wsdl/service.wsdl</wsdl>
    <extraargs>
      <extraarg>-wsdlLocation</extraarg>
      <wsdlurl />
    </extraargs>
  </wsdlOption>
</wsdlOptions>

${basedir}/src/main/wsdl/service.wsdl
-wsdlLocation

然后,客户机可以接收wsdl位置作为参数,并成为可移植客户机。这就是为什么我在寻找使用相对路径的原因:实现一个可移植的客户端。今天我终于找到了正确的方法。只需将文件放在您的资源文件夹中,然后您就可以使用wsdlLocation相对地引用它们,如下所示:

<wsdlLocation>classpath:wsdl/myservice.wsdl</wsdlLocation>
classpath:wsdl/myservice.wsdl

请看我对类似问题的回答:

我想我还不够清楚。我想将wsdlLocation设置为相对路径。请注意,使用此方法时,不会使用WSDL中存在的策略。请与结合,因为如果仅使用它,则该方法不起作用!