CXF Webservice Client中WSDL的相对路径

时间:2010-12-02 11:53:20

标签: wsdl cxf relative-path

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

现在我的问题是,如何将@WebserviceClient Annotation中的“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 {

3 个答案:

答案 0 :(得分:11)

我终于明白了今天如何正确地做到这一点。只需将文件放在您的资源文件夹中,然后您就可以使用wsdlLocation来引用它们,如下所示:

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

在此处查看我对类似问题的回答:https://stackoverflow.com/a/9875701/1190144

答案 1 :(得分:1)

以下是生成空wsdl位置所能做的事情

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

然后,客户端可以接收wsdl位置作为参数,并成为便携式客户端。这就是我寻找使用相对路径的原因:实现便携式客户端

答案 2 :(得分:0)

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