【问题标题】:Run multiple applications from the same WAR file with Jetty使用 Jetty 从同一个 WAR 文件运行多个应用程序
【发布时间】:2015-04-30 11:49:42
【问题描述】:

我有一个在 Jetty 上运行的 Web 应用程序。我将我的应用程序打包为 .war,然后将其部署在服务器上。

我想为多个租户提供相同的应用程序,而不是每次都复制整个项目的不同名称。租户之间的唯一区别是包含数据库连接详细信息的参数文件。

目前,对于每个租户,我使用新名称将项目复制粘贴到 Eclipse 中,然后更改参数文件。如果我更改代码中的任何内容,我必须在所有项目中更新它。

理想的情况是有一个命令以不同的名称运行相同的代码,每个名称使用不同的属性文件: app.war -> dummy.com/app1 dummy.com/app2 dummy.com/app3

如何实现?

【问题讨论】:

  • 每个租户是否在不同的 Jetty 服务器上? (有自己的主机和/或端口?)
  • 是的,每个租户都有相同的端口和主机:www.dummy.com/client1,www.dummy.com/client2。以后可以是client.dummy.com,client2.dummy.com

标签: java maven web-applications jetty multi-tenant


【解决方案1】:

使用environment variables 选择配置。 例如设置 Environment=dev 或 Environment=test 或 Environment=WEB1 然后使用此值来选择要使用的配置。

【讨论】:

  • 谢谢,但我仍然需要部署不同名称的相同战争。
  • 为什么?您想在同一台服务器上运行相同的应用程序,但使用不同的 Web 根目录?然后只需将不同名称的战争文件复制到部署目录即可。而且,在这种情况下,您甚至不需要环境变量 - 您可以使用这个不同的 Web 根目录来选择配置,
  • @Alex 他不需要复制战争文件,上下文部署可以完成大部分(如果不是全部)。他甚至可以为 DeploymentManager 编写自己的 AppProvider 来动态管理它。
猜你喜欢
  • 2013-04-02
  • 2021-08-09
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多