gpt4 book ai didi

java - 使用一个 war 文件部署两个 glassfish 应用程序,在不同的数据库上运行

转载 作者:行者123 更新时间:2023-12-01 09:36:50 25 4
gpt4 key购买 nike

我有一个 Netbeans 项目,我从中构建了一个 .war 文件。我现在在 glassfish 服务器上部署该 war 文件的两个实例,每个实例都有不同的上下文根,例如mydomain.com/abcmydomain.com/def

这工作正常,但它们仍然在同一个数据库上运行,因为我在 persistence.xmlglassfish-resources.xml 中声明了持久性单元。

我的glassfish-resources.xml文件:

...
<jdbc-resource enabled="true"
jndi-name="jdbc/abc"
object-type="user"
pool-name="abcPool">
<description/>
</jdbc-resource>

<jdbc-connection-pool
...
name="abcPool"
...
<property name="URL" value="jdbc:mysql://localhost:3306/abc"/>
...
</jdbc-connection-pool>

我的persistence.xml文件:

...
<persistence-unit name="abcPU" transaction-type="JTA">
<jta-data-source>jdbc/abc</jta-data-source>
...
</persistence-unit>
...

有人有关于如何让一个 war 文件的两个实例在两个不同的数据库上运行的解决方案吗?

是否有一种方法可以将不同的 glassfish-resources.xmlpersistence.xml 上传到每个应用程序,覆盖打包的应用程序?

如果可能的话,一旦部署应用程序,就可以在 glassfish 域管理控制台中更改模块描述符。

如果需要glassfish域管理控制台的屏幕截图,请在评论中写下,我会添加它们。

提前谢谢您!

最佳答案

我认为最简单的方法是有两个不同的版本。

基本上,您可以创建两个不同的 .war 文件。每一个都有不同的 persistence.xml 文件。一个指向 JDBC 资源 ABC,另一个指向 JDBCS 资源 DEF。

像 gradle+Jenkins 这样的构建工具可能会在这方面为您提供支持。

如果您搜索如何使用不同配置创建用于测试与生产系统的构建,您将找到大量有关类似任务的信息。这是一项非常常见的任务。

这可能是您正在寻找的内容的起点: Create multiple .WAR files with different dependencies in Gradle

关于java - 使用一个 war 文件部署两个 glassfish 应用程序,在不同的数据库上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38819438/

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