无法随机找到类路径资源

时间:2011-10-14 05:52:39

标签: java hibernate spring tomcat classpath

我们在Eclipse中集成了Spring与Hibernate和Struts2,并且在运行构建时遇到了这些错误:

14-Oct-2011 10:37:27 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [Test.hbm.xml] cannot be opened because it does not exist
...
Caused by: java.io.FileNotFoundException: class path resource [Test.hbm.xml] cannot be opened because it does not exist
...

我们在applicationContext.xml中的映射是:

<property name="mappingResources" value="Test.hbm.xml" />

Test.hbm.xml位于 / build / classes 中,我们已尝试将其放入 / WEB-INF / src ,甚至创建了一个名为 / hibernate 的新源文件夹并将其转储,只能在少数几台机器上运行。

我们第一次写它时,它显示了这个错误。然后我们将完全相同的代码复制到一个新项目中,它突然起作用了。在某些机器上,它有效;在其他人身上,它显示了这个错误。

有谁知道什么可能是错的?如果需要任何其他信息,请与我们联系。

非常感谢。

1 个答案:

答案 0 :(得分:1)

这不是构建时错误。这是一个运行时间。但是,这种间歇性故障表明您的构建存在问题。作为类路径资源,当您运行应用程序时,Test.hbm.xml必须位于类路径位置。确切地说,这取决于你如何运行它,但/ WEB-INF永远不会用于webapp,并且随机/ hibernate文件夹也不太可能工作,除非你已经完成了一些自定义配置classpath资源或使其构建为一个。要获得更明确的答案,您需要提供有关您正在运行的内容以及如何构建它的更多详细信息。