首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Glassfish 3 web服务中使用Hibernate

在Glassfish 3 web服务中使用Hibernate
EN

Stack Overflow用户
提问于 2010-08-18 22:36:00
回答 1查看 951关注 0票数 1

我有一个Java应用程序,它使用Hibernate实现持久化。现在,我正在尝试将这个应用程序的一部分公开为部署到Glassfish 3.0.1的web服务。

实现服务的代码位于JAR文件中,JAR文件与WAR文件一起部署到Glassfish中。WAR中的服务代码在访问JAR文件中使用Hibernate的类时没有问题。

但是,当我试图调用服务时,会抛出一个异常,说明Hibernate找不到hibernate.cfg.xml文件。为了我的生命,我不知道.cfg文件应该放在哪里,无论是在JAR、WAR还是在玻璃鱼中,这样就可以在类路径上找到它。

我尝试将它放在WAR文件中的meta目录中(当我检查WAR时它实际上是“meta”),并放在JAR中的同一个目录中。我还尝试在几个不同的玻璃鱼目录中创建一个META目录,但都没有效果。

在Eclipse中开发此服务时,我不得不反复考虑如何放置.cfg文件,以便将其放入类路径。在将它部署到GF时,这似乎也是一个问题。

有人能告诉我.cfg文件的去向吗?这样,当这个服务部署在GF中时,就可以访问它了吗?

谢谢,

克里斯

EN

回答 1

Stack Overflow用户

发布于 2010-08-18 23:34:28

如果您使用的是no-arg Configure#configure()方法,那么hibernate.cfg.xml文件应该位于类路径的根的

下面是来自o.h.c.Configuration.java的相关片段

代码语言:javascript
复制
/**
 * Use the mappings and properties specified in an application
 * resource named <tt>hibernate.cfg.xml</tt>.
 */
public Configuration configure() throws HibernateException {
    configure( "/hibernate.cfg.xml" );
    return this;
}

/**
 * Use the mappings and properties specified in the given application
 * resource. The format of the resource is defined in
 * <tt>hibernate-configuration-3.0.dtd</tt>.
 * <p/>
 * The resource is found via <tt>getConfigurationInputStream(resource)</tt>.
 */
public Configuration configure(String resource) throws HibernateException {
    log.info( "configuring from resource: " + resource );
    InputStream stream = getConfigurationInputStream( resource );
    return doConfigure( stream, resource );
}

实际上,Hibernate核心参考指南中记录了这一点:

3.7。XML配置文件 配置的另一种方法是在名为hibernate.cfg.xml的文件中指定完整的配置。此文件可用作hibernate.properties文件的替代文件,如果两者都存在,则可以重写属性。 配置文件在默认情况下应该位于CLASSPATH. (.)的根目录中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3517292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档