【问题标题】:Multiple hibernate configurations for multiple War applications in JBossJBoss 中多个 War 应用程序的多个休眠配置
【发布时间】:2011-11-15 21:41:36
【问题描述】:

我正在运行 JBoss AS 6。

  • 我已经部署了多个 War 应用程序。所有这些应用都通过休眠配置访问数据库。

  • 我在 JBoss 中配置了数据源,每个 War 应用程序一个 DS,因为它们使用不同的 DB 用户帐户。然后在每个应用程序中,我配置hibernate.cfg.xml 并说明要使用的相应DS。每场战争都有自己的hibernate.cfg.xml

  • 隔离后,每个应用程序都能完美运行。我启动服务器,测试应用程序,关闭服务器。一切正常。

  • 当我启动服务器并开始使用所有应用程序时出现问题。 第一个与数据库建立连接的应用程序似乎工作正常,但以下可能会显示一些与以下相关的问题:

    1. 不存在的休眠实体映射。
    2. 不存在的数据库表。

我的理论:

  1. 未加载对应的hibernate.cfg.xml,也未加载映射的位置。执行查询时,hibernate 不知道此类实体。

  2. 未加载相应的hibernate.cfg.xml,并且正在使用不同的用户帐户连接到数据库。有些表格只对部分用户可见。

我的问题是:

为什么应用程序没有正确加载相应的 hibernate.cfg.xml

【问题讨论】:

    标签: java hibernate war jboss6.x


    【解决方案1】:

    我不知道为什么使用 cfg.xml 文件不起作用,但我最近看到的大多数 JBoss/Hibernate 应用程序都使用 JPA。如果您没有得到答案,也许可以尝试一下?这很简单,只需在 META-INF 文件夹中添加一个 persistence.xml,如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
                 version="1.0">
    
        <persistence-unit name="MyService" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <non-jta-data-source>java:/jdbc/myDB</non-jta-data-source>
            <class>com.mydomain.service.entities.Entity</class>
            <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
                <property name="hibernate.show_sql" value="true" />
            </properties>
        </persistence-unit>
    
    </persistence>
    

    您可以通过多种方式解决持久性问题,但这很有效:

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyService");
    

    并不是说你不能用配置文件来解决这个问题,只是提供一个替代方案......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      相关资源
      最近更新 更多