2011-05-11 48 views
2

我正在使用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?

乾杯,

皮特

回答

4

Class.getResource負載從類路徑文件,所以你在正確的軌道上。

因此,將您的wsdl存儲在您的類路徑中的某處,例如您的源文件夾,並將源文件夾視爲「文件系統」的根目錄,例如getResource("/myWSDL.wsdl")

HTH