我有一個EAR,我將其部署爲生產環境「/」。 我想在服務器上部署應用程序的測試版本,即相同的Glassfish實例。GlassFish多個EAR
是否可以在同一實例中的不同上下文和端口下部署應用程序?
如果是這樣,除了更改application.xml中的上下文之外,還需要更改其他任何東西嗎?
我有一個EAR,我將其部署爲生產環境「/」。 我想在服務器上部署應用程序的測試版本,即相同的Glassfish實例。GlassFish多個EAR
是否可以在同一實例中的不同上下文和端口下部署應用程序?
如果是這樣,除了更改application.xml中的上下文之外,還需要更改其他任何東西嗎?
通常情況下,您可以通過更改上下文根並將其部署爲整個新應用程序來部署應用程序的測試版本。
但是,您必須考慮應用程序的設計。如果應用程序使用數據庫,更常見的是,您將需要一個測試數據庫實例。測試和生產應用程序使用的所有JNDI名稱(包括數據源和EJB,如果有的話)不得有任何衝突。運行同一應用程序的多個實例是不明智的舉動,所有這些實例都引用相同的JNDI名稱。
最後,標準的接受實踐是將測試和生產環境分開,甚至在任務關鍵型應用等情況下也有相同的獨立機器。這通常是爲了防止一個環境(通常是生產環境)被另一個環境意外覆蓋。
你大部分都是正確的,但是在不同的應用程序實例中查找相同的jndi名稱本身沒有任何問題。對於jdbc連接,只要需要,它就會從池中獲取連接。我並不是說這是一個好主意:你會得到一個與test/prod相同的db連接。但這不是一個jndi問題。 – ymajoros 2011-04-05 14:31:26
我想要做同樣的事情。我想知道如果在一個新的端口等玻璃魚創建一個新的域可以解決這個問題? – 2010-03-18 09:08:33
@Thorbjørn是的,一個新的域是一個不同的服務器在這裏看到更多關於玻璃魚域的概念http://blogs.oracle.com/bloggerkedar/entry/concept_of_a_glassfish_domain – Ittai 2011-06-07 19:41:16
@Ittai,我已經做到了這一點。不幸的是一個實例並不輕量級。 – 2011-06-07 19:53:43