Java Glassfish部署不同的战争实例覆盖前者

Java Glassfish部署不同的战争实例覆盖前者,java,jakarta-ee,glassfish,Java,Jakarta Ee,Glassfish,我试图为不同的人多次部署同一个war文件,我们决定避免多租户,因为每个客户机都希望自己的数据库和应用程序与其他客户机分开 到目前为止,我们所做的是在glassfish管理面板中创建一个单独的连接池和一个JDBC资源,编辑persistence.xml并将持久性单元更新为我们自己的持久性 然后在Netbeans中,我们创建了一个自定义的属性→ 建造→ 包装→ 设置不同的war文件名,然后编辑属性→ 建造→ 跑→ 上下文路径→ 并设置上下文名称,最后替换为web.xml→ 我们的名字 发生的事情是,

我试图为不同的人多次部署同一个war文件,我们决定避免多租户,因为每个客户机都希望自己的数据库和应用程序与其他客户机分开

到目前为止,我们所做的是在glassfish管理面板中创建一个单独的连接池和一个JDBC资源,编辑persistence.xml并将持久性单元更新为我们自己的持久性

然后在Netbeans中,我们创建了一个自定义的属性→ 建造→ 包装→ 设置不同的war文件名,然后编辑属性→ 建造→ 跑→ 上下文路径→ 并设置上下文名称,最后替换为web.xml→ 我们的名字

发生的事情是,有时我们部署的战争会用不同的名称覆盖以前的战争!
我觉得我们就快到了,但错过了一个小细节。

作为一种部署技术,这是相当少见的,因为如果你必须更改应用程序中的某些内容(错误纠正、改进等),你将不得不手动重新部署所有的战争,并冒着出错的风险。如果您认为应该使用python或ruby之类的脚本语言来自动化部署

第一反射:

  • 一个配置文件,每个实例包含一行及其所有参数
  • 通过该配置文件和
    • 在源代码中进行配置更改
    • 使用
      ant
      maven
    • 部署到生产服务器
即时改善:

  • 允许对所有战争或某些战争进行再生(id作为参数给出)
  • 使用临时目录来完成所有这些工作(从dev目录复制,但不要修改它)
  • 你需要的一切我都没有想到
但是请记住,即使使用传统方法(一场战争,一个数据库),如果应用程序是用这种方法设计的(仍然是传统方法),那么每个用户只能看到自己的数据