我在我的應用程序中有以下代碼塊;Thread.currentThread()。getContextClassLoader()。getResourceAsStream()返回null
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(FilePath);
這裏'FilePath'是文件的絕對路徑。
上面的代碼在linux和windows下工作正常,當我以正常模式運行應用程序時(即:在命令提示符中) 但是,當我將應用程序作爲Windows服務運行時,這不起作用。我將輸入流視爲'null'。
之前有人遇到過這樣的問題嗎?除了java類加載器之外,我找不到任何關於此的信息。在這裏,我們使用「ContextClassLoader」,這是正確的類加載器使用..
任何線索?
向我們展示您使用的確切路徑。在這種情況下,「絕對路徑」聽起來不對。 –
這裏我的路徑就像存儲庫「+ File.separator +」資源「+ File.separator +」api_templates「+」api.xml「;(我已經在我的wrapper.conf文件中設置了主目錄,我的應用程序作爲服務啓動「repository目錄是我的主目錄中的第一個子目錄 – Ratha
您確定您的應用程序運行的標識爲服務允許您嘗試打開的文件的讀取訪問權限嗎?如果它的身份證號碼正常運行,但不是作爲服務,那麼在我看來,唯一的區別是它是如何執行的,或者是由誰執行的。 – CodeChimp