簡體   English   中英

使用一個war文件部署了兩個glassfish應用程序,它們在不同的數據庫上運行

[英]Two glassfish applications deployed with one war file, operating on different databases

我有一個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,另一個指向JDBS資源DEF。

gradle + Jenkins等構建工具可能會為此提供支持。

如果您搜索如何創建具有不同配置的內部版本以測試生產系統,則會發現許多有關類似任務的信息。 這是非常常見的任務。

這可能是您要尋找的內容的起點: 在Gradle中創建多個具有不同依賴項的.WAR文件

在服務器級別設置兩個指向不同數據庫的數據源,然后轉到應用程序實例並修改指向特定數據源的資源引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM