我在Web服務客戶端項目中使用wsimport來生成基於wsdl文件的工件類。我試圖通過使用wsdlLocation屬性在本地引用wsdl文件。生成的服務將嘗試根據服務類所在的包的路徑和wsdlLocation屬性的值創建URL。class.getResource(「。」)返回null
問題是生成的服務類正在使用class.getResource(".")
以獲取當前目錄(服務類所在的包/目錄)的路徑。如果應用程序打包在一個jar中(就像我的情況那樣),這段代碼返回null。我注意到class.getResource(「」)實際上會返回正確的路徑,但更改生成的代碼看起來像是一個難看的解決方案。我想知道是否有一些方法來設置類路徑,以便前面的代碼將返回生成的服務類所在的包/目錄的路徑(如預期的那樣)?
謝謝
一個類不駐留在一個目錄中。它駐留在一個包中。該包可以通過目錄或jar文件的條目來「物化」。無論該類是否在jar中,您的代碼都應該可以工作。如果你想要一個類的包名,只需使用Service.class.getPackage()。getName() –
對不起 - 我已更正該帖子。正如我前面提到的那樣,指定的代碼是由wsimport生成的,我不想改變它。不管怎麼說,還是要謝謝你。 – Alina