gpt4 book ai didi

java - TomEE 指向错误的数据源

转载 作者:行者123 更新时间:2023-12-01 12:45:32 32 4
gpt4 key购买 nike

我正在使用单个 TomEE 实例来部署 2 个 Web 应用程序。两个应用程序使用不同的数据库和不同的实体。

应用程序 2 集成到应用程序 1 中,因此我在运行时随时需要这两个架构。

我在 tomee.xml 中配置了两个 DataSources,如下所示:

<tomee>
<Resource id="testDBPool" type="DataSource">
jdbcDriver = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost:3306/testDB"
username = "admin"
password = "admin"
</Resource>
</tomee>

<tomee>
<Resource id="testDBPool2" type="DataSource">
jdbcDriver = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost:3306/testDB2"
username = "admin"
password = "admin"
</Resource>
</tomee>

在应用程序 1 中,我使用这个 persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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_2_0.xsd">
<persistence-unit name="testDBPool" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/testDBPool</jta-data-source>
</persistence-unit>
</persistence>

在应用程序 2 中,我使用这个 persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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_2_0.xsd">
<persistence-unit name="testDBPool2" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/testDBPool2</jta-data-source>
</persistence-unit>
</persistence>

当我尝试运行应用程序时,它抛出 testDB.table1 不存在,而实际上 table1 存在于 testDB2 模式中不存在在 testDB 中,我不明白为什么它指向错误的架构?

最佳答案

在我看来,您的 Application2 的 persistence.xml 从未加载过。这并不奇怪,因为已经有一个 presistence.xml 正在为上下文运行。

尝试将应用程序 2 中的条目添加到应用程序 1 中,看看是否有效。

或者看看这个问题:How can I make a JPA application access different databases?看看是否有帮助。

如果两者都不起作用,请将 Application2 与 Application1 解开并在不同的上下文中运行它们,以便每个应用程序都有自己的 persistence.xml 运行,然后再次调试。

关于java - TomEE 指向错误的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24734924/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com