Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建会话工厂时如何解决/hibernate.cfg.xml未找到异常?_Java_Hibernate_Jbossfuse - Fatal编程技术网

Java 创建会话工厂时如何解决/hibernate.cfg.xml未找到异常?

Java 创建会话工厂时如何解决/hibernate.cfg.xml未找到异常?,java,hibernate,jbossfuse,Java,Hibernate,Jbossfuse,我正在从事一个JBoss fuse项目,我能够解决与JBoss fuse 6.3版本上的hibernate集成相关的大多数依赖性问题。但不幸的是,当程序尝试创建hibernate会话时,它会出现以下异常,即无法找到/hibernate.cfg.xml文件。下图显示了我的项目结构。项目在resources文件夹中包含hibernate.cfg.xml文件 尝试创建会话时点应用程序出现异常 JBossFuse:karaf@root> SessionFactory creation

我正在从事一个JBoss fuse项目,我能够解决与JBoss fuse 6.3版本上的hibernate集成相关的大多数依赖性问题。但不幸的是,当程序尝试创建hibernate会话时,它会出现以下异常,即无法找到
/hibernate.cfg.xml
文件。下图显示了我的项目结构。项目在resources文件夹中包含hibernate.cfg.xml文件

尝试创建会话时点应用程序出现异常

      JBossFuse:karaf@root> SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found
整个例外情况与下面的类似

Caused by: java.lang.ExceptionInInitializerError
at com.demo.activemq.HibernateUtil.buildSessionFactory(HibernateUtil.java:17)[388:DemoActiveMq1:1.0.0.SNAPSHOT]
at com.demo.activemq.HibernateUtil.<clinit>(HibernateUtil.java:8)[388:DemoActiveMq1:1.0.0.SNAPSHOT]
at com.demo.activemq.OrderProcessor.process(OrderProcessor.java:18)[388:DemoActiveMq1:1.0.0.SNAPSHOT]
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
... 45 more
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173)[346:org.hibernate.core:4.2.22.Final-redhat-1]
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2090)[346:org.hibernate.core:4.2.22.Final-redhat-1]
at org.hibernate.cfg.Configuration.configure(Configuration.java:2071)[346:org.hibernate.core:4.2.22.Final-redhat-1]
at org.hibernate.cfg.Configuration.configure(Configuration.java:2051)[346:org.hibernate.core:4.2.22.Final-redhat-1]
at com.demo.activemq.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)[388:DemoActiveMq1:1.0.0.SNAPSHOT]
... 48 more
以下是我的pom.xml文件的依赖项

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-core</artifactId>
  <version>2.17.0.redhat-630187</version>
</dependency>
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-spring</artifactId>
  <version>2.17.0.redhat-630187</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
</dependency>
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-test-spring</artifactId>
  <version>2.17.0.redhat-630187</version>
</dependency>
<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-core</artifactId>
  <version>3.1.8</version>
</dependency>
<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-api</artifactId>
  <version>2.7.11</version>
</dependency>
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.2.22.Final-redhat-1</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.14</version>
</dependency>
<dependency>
  <groupId>org.apache.servicemix.bundles</groupId>
  <artifactId>org.apache.servicemix.bundles.commons-dbcp</artifactId>
  <version>1.4_3</version>
</dependency>

org.apache.camel
驼芯
2.17.0.redhat-630187
org.apache.camel
骆驼泉
2.17.0.redhat-630187
org.slf4j
slf4j api
org.slf4j
slf4j-log4j12
log4j
log4j
org.apache.camel
驼峰试验弹簧
2.17.0.redhat-630187
org.apache.cxf
cxf核心
3.1.8
org.apache.cxf
cxfapi
2.7.11
org.hibernate
冬眠核心
4.2.22.Final-redhat-1
mysql
mysql连接器java
5.1.14
org.apache.servicemix.bundles
org.apache.servicemix.bundles.commons-dbcp
1.4_3
有没有人经历过这样的问题?我如何解决这个问题?请提供有关此方面的反馈。configure()。buildSessionFactory()如果没有任何方法参数,则不推荐使用,您将因此获得异常

请修改
buildSessionFactory()
方法,如下所示:

private static SessionFactory buildSessionFactory() {
    try {
        // Create the SessionFactory from hibernate.cfg.xml
        Configuration configure = new Configuration();
        return configure.buildSessionFactory(new StandardServiceRegisteryBuilder
                                  .applySettings(configure.getProperties())
                                  .build());
    } catch (Throwable ex) {
        // Make sure you log the exception, as it might be swallowed
        System.err.println("SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex);
    }
}
如果遇到任何问题,请在评论中告诉我。

new Configuration().configure().buildSessionFactory()
如果没有任何方法参数,则不推荐使用,您将因此获得异常

请修改
buildSessionFactory()
方法,如下所示:

private static SessionFactory buildSessionFactory() {
    try {
        // Create the SessionFactory from hibernate.cfg.xml
        Configuration configure = new Configuration();
        return configure.buildSessionFactory(new StandardServiceRegisteryBuilder
                                  .applySettings(configure.getProperties())
                                  .build());
    } catch (Throwable ex) {
        // Make sure you log the exception, as it might be swallowed
        System.err.println("SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex);
    }
}

如果遇到任何问题,请在评论中告诉我。

hibernate4.x
介绍
ServiceRegistry
。您的代码遵循
hibernate3.x
标准。而
new Configuration().configure().buildSessionFactory()
Hibernate 3.x
中有效。由于您使用的是
Hibernate 4.x
Hibernate.cfg.xml
,因此创建
SessionFactory
的代码应该如下所示:

Configuration config = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
              .applySettings(config.getProperties()).build();
SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
因为,如果您在
Configuration
类中查看Hibernate文档中的
configure()
方法,它会说:

使用应用程序资源中指定的映射和属性 名为hibernate.cfg.xml

如果您使用的是
hibernate.properties
文件,那么创建
配置
对象的代码应该如下所示:

Configuration config = new Configuration();

hibernate4.x
引入了
ServiceRegistry
。您的代码遵循
hibernate3.x
标准。而
new Configuration().configure().buildSessionFactory()
Hibernate 3.x
中有效。由于您使用的是
Hibernate 4.x
Hibernate.cfg.xml
,因此创建
SessionFactory
的代码应该如下所示:

Configuration config = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
              .applySettings(config.getProperties()).build();
SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
因为,如果您在
Configuration
类中查看Hibernate文档中的
configure()
方法,它会说:

使用应用程序资源中指定的映射和属性 名为hibernate.cfg.xml

如果您使用的是
hibernate.properties
文件,那么创建
配置
对象的代码应该如下所示:

Configuration config = new Configuration();

你好首先,您是否有
hibernate.cfg.xml
文件?如果您这样做了,那么
hibernate.cfg.xml
在您的项目中位于哪里?我已经将它添加到src/main/resources文件夹中。我已经用项目结构更新了这个问题。请提供cfg文件的完整路径Configuration()。configure(“./com/eclear/cfg/xml/hibernate.cfg.xml”).buildSessionFactory();你好首先,您是否有
hibernate.cfg.xml
文件?如果您这样做了,那么
hibernate.cfg.xml
在您的项目中位于哪里?我已经将它添加到src/main/resources文件夹中。我已经用项目结构更新了这个问题。请提供cfg文件的完整路径Configuration()。configure(“./com/eclear/cfg/xml/hibernate.cfg.xml”).buildSessionFactory();我收到一个编译错误,说找不到“StandardServiceRegisteryBuilder”是否需要其他JAR?您添加了哪些JAR?请使用pom.xml文件编辑问题?您使用的是哪个版本的hibernate?您的hibernate版本应该高于4.3,就像4.2.22.Final-redhat-1版本一样,因为它应该与JBoss fuse版本匹配。我已将依赖项添加到问题中。我收到一个编译错误,它说找不到“StandardServiceRegisteryBuilder”是否需要其他JAR?您添加了哪些JAR?请使用pom.xml文件编辑问题?您使用的是哪个版本的hibernate?您的hibernate版本应该高于4.3,就像4.2.22.Final-redhat-1版本一样,因为它应该与JBoss fuse版本匹配。我已将依赖项添加到问题中。