2016-05-14 46 views
0

我上傳的Spring應用程序中的Heroku但應用程序,出現以下錯誤崩潰:的Heroku無法找到XML配置文件

java.io.FileNotFoundException: class path resource [com/myname/myapp/config/dao-context.xml

的文件肯定是有,也是在GIT,和應用程序本地成功運行。

任何想法這裏發生了什麼?

回答

0

對於這個問題今後的遊客,我通過我的DAO XML配置文件轉換爲克服這個問題Java Config方法,因此Spring不再需要該XML文件。這並沒有直接解決無法找到XML文件的問題,但是增加的好處是我現在使用更現代,更簡潔的Java Config方法。

4

我懷疑當你在本地運行時,它會在類路徑上以文件系統上的常規文件(即不在JAR內部)接收文件。

在Heroku上,它可能是一個JAR文件,這意味着它不是一個普通的文件內,而且必須被理解爲一個輸入流,這可能是這樣的:

ClassLoader cl = this.getClass().getClassLoader(); 
InputStream inputStream = cl.getResourceAsStream("com/myname/myapp/config/dao-context.xml"); 

你可能通過運行Procfile中的相同命令在本地重現問題。

如果不是這種情況,那麼請確保該文件通過運行此命令在Heroku上存在:

$ heroku run ls com/myname/myapp/config/dao-context.xml 
+0

謝謝。我目前在註釋中引用該文件 - 「@ImportResource({」classpath:com/myname/myapp/config/dao-context.xml「})''。我將如何使用ClassLoader? –

相關問題