具有不同URL和数据库的同一服务器上的同一EAR应用程序的多个副本

时间:2012-02-25 21:49:38

标签: java web-services glassfish jax-ws

我已经使用Jax-ws部署了一个Web服务,它使用数据库来存储某些状态。我已将所有内容打包在EAR应用程序中并使用Glassfish进行部署。我想在同一台服务器(然后是同一台物理机)上部署此应用程序的多个副本,但Glassfish不允许这样做。每个应用程序都需要具有不同的WS端点(即不同的URL和/或端口)和不同的数据库,以便每个Web服务都保留其自己的状态。

我尝试在不同的虚拟服务器和不同的http侦听器上部署我的应用程序。所以我让我的应用程序响应不同的URL。不幸的是,应用程序是相同的,所以它是我的数据库。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

如果它有不同的名称,我认为glassfish不会禁止多次部署同一个应用程序。

问题可能来自提供差异化​​日期的方式。通常的方法是从外部源读取这些属性(例如 - 数据库连接字符串,用户名,密码):

  • 外部属性文件
  • JNDI
  • (如果存在)特定于应用程序服务器的配置

但是,您需要一种方法来根据部署在文件系统上查找不同的文件。您可以在启动时阅读(Web)上下文名称(来自ServletContext)并查找:

 String path = System.getProperty("config.location") + "/" + ctx.getServletContextName();