2009-12-17 68 views
0

我在类似扩展的服务器端应用程序中使用Hibernate,并将我的二进制文件放到服务器应用程序的扩展文件夹中。 问题是,如果我运行服务器,根文件夹是服务器应用程序的根文件夹,而不是二进制文件的根目录。因此,Hibernate搜索该文件夹中的配置文件,并尝试从该文件夹中找到类。我想这与服务器启动时的JVM有关。配置文件不是问题,因为我可以在那里复制我的配置文件,但所有路径都无效。 因此,在我生成的映射文件中,我有一个类org.gmate.data.SomeClass.java,但它不会找到它。设置休眠根文件夹

我的问题:有什么办法,解决方法或解决方法,我可以设置Hibernate的根文件夹为扩展文件夹,所以它开始从那里获得类?

感谢提前全部答复, gmate

回答

0

我终于找到了我的问题的解决方案。问题不在于我认为的假定的根文件夹,而是服务器使用的类加载程序。就像在我的扩展文件夹中一样,一个CustomClassLoader加载了我的类。并且它们没有出现在类路径中。当我将我的类移动到一个jar文件中,并将该jar文件添加到类路径中时,我设法使用了hibernate。将扩展文件夹添加到类路径导致使用SystemClassLoader加载这些类,但是随后自定义类加载器的优势消失了。