2016-05-14 48 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? –

相关问题