我正在使用 Apache CXF 连接到 SOAP API。我已将 WSDL 保存在 Eclipse 项目中,并且想要加载它。我的项目如下所示:
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
关于Java - Apache CXF 从 Jar 加载 WSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5958019/