Java - Apache CXF从Jar加载WSDL
问题描述:
我正在使用Apache CXF连接到SOAP API。我在我的Eclipse项目中保存了WSDL,我想加载它。我的项目是这样的:Java - Apache CXF从Jar加载WSDL
src
gen
resources +
META-INF +
myWSDL.wsdl
我可以加载WSDL,如果我从我的驱动器的根目录的路径硬代码:
static {
URL url = null;
try {
url = new URL("file:/home/peter/workspace/project/resources/META-INF/myWSDL.wsdl");
System.out.println(url);
} catch (MalformedURLException e) {
//blah
}
}
但是,如果我尝试加载WSDL作为它失败的资源:
static {
URL url = null;
try {
url = MyServiceClass.class.getResource("/resource/META-INF/BFExchangeService.wsdl");
System.out.println(url); //prints null
} catch (MalformedURLException e) {
//blah
}
}
如何从我的项目(并最终,我的.jar)中加载WSDL?
干杯,
皮特
答
Class.getResource
负载从类路径文件,所以你在正确的轨道上。
因此,将您的wsdl存储在您的类路径中的某处,例如您的源文件夹,并将源文件夹视为“文件系统”的根目录,例如getResource("/myWSDL.wsdl")
HTH