2009-08-24 42 views
2

我有一个EAR,我将其部署为生产环境“/”。 我想在服务器上部署应用程序的测试版本,即相同的Glassfish实例。GlassFish多个EAR

是否可以在同一实例中的不同上下文和端口下部署应用程序?

如果是这样,除了更改application.xml中的上下文之外,还需要更改其他任何东西吗?

+0

我想要做同样的事情。我想知道如果在一个新的端口等玻璃鱼创建一个新的域可以解决这个问题? – 2010-03-18 09:08:33

+1

@Thorbjørn是的,一个新的域是一个不同的服务器在这里看到更多关于玻璃鱼域的概念http://blogs.oracle.com/bloggerkedar/entry/concept_of_a_glassfish_domain – Ittai 2011-06-07 19:41:16

+0

@Ittai,我已经做到了这一点。不幸的是一个实例并不轻量级。 – 2011-06-07 19:53:43

回答

3

通常情况下,您可以通过更改上下文根并将其部署为整个新应用程序来部署应用程序的测试版本。

但是,您必须考虑应用程序的设计。如果应用程序使用数据库,更常见的是,您将需要一个测试数据库实例。测试和生产应用程序使用的所有JNDI名称(包括数据源和EJB,如果有的话)不得有任何冲突。运行同一应用程序的多个实例是不明智的举动,所有这些实例都引用相同的JNDI名称。

最后,标准的接受实践是将测试和生产环境分开,甚至在任务关键型应用等情况下也有相同的独立机器。这通常是为了防止一个环境(通常是生产环境)被另一个环境意外覆盖。

+0

你大部分都是正确的,但是在不同的应用程序实例中查找相同的jndi名称本身没有任何问题。对于jdbc连接,只要需要,它就会从池中获取连接。我并不是说这是一个好主意:你会得到一个与test/prod相同的db连接。但这不是一个jndi问题。 – ymajoros 2011-04-05 14:31:26

相关问题