在我的应用程序中,我使用了许多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 {
答案 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标志,可用于指定放置在那里的确切字符串。