CXF Webservice客户端中WSDL的相对路径
问题描述:
在我的应用程序中,我使用了许多Web服务。由于WSDL没有改变,我已经将WSDL文件集成到了我的项目中。如果我使用CXF中的WSDL2Java工具,那么WSDL位置绝对路径将被硬编码。CXF Webservice客户端中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 {
答
我终于想出了如何在今天正确地做到这一点。只要把这些文件是你的资源文件夹,然后你可以使用wsdlLocation指他们比较像这样:
<wsdlLocation>classpath:wsdl/myservice.wsdl</wsdlLocation>
见我的答案在这里一个类似的问题:https://stackoverflow.com/a/9875701/1190144
答
WSDL2Java工具具有可以用来指定被放置在那里的确切字符串-wsdlLocation标志。
答
这里是一个可以产生一个空的WSDL位置
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/wsdl/service.wsdl</wsdl>
<extraargs>
<extraarg>-wsdlLocation</extraarg>
<wsdlurl />
</extraargs>
</wsdlOption>
</wsdlOptions>
然后,客户机可以接收WSDL位置作为参数,并成为一个便携式客户端做的。这就是为什么我一直在寻找使用相对路径的原因:实现便携式客户端
+0
请注意,使用此方法时,不会使用WSDL中存在的策略。 – Abbadon 2015-10-07 07:08:36
我想我是不太清楚。我想将wsdlLocation设置为相对路径。 – 2010-12-07 23:17:12