如果我在 Tomcat 中两次部署相同的 Grails 应用程序(即 myApplication_first.war、myApplication_second.war),则 Tomcat 无法部署 WAR 文件,可重现。它抱怨类 XYZ 已经存在于 TEMP 文件夹中(这是真的,由于以前的部署)。因此,更改全局 Tomcat TEMP 文件夹没有任何意义,因为两个项目无论如何都会再次使用同一个文件夹。
我通常知道如何部署应用程序两次,但不是在 Grails 上下文中,因为它自己已经管理了很多东西。
有没有办法实现这个计划?
我们使用 Grails 版本 1.3.7。
我搜索了很多可能的解决方案,但没有一个适合我的需求。
- 在多个 Tomcat 实例上部署
- 仅部署一个应用程序并使用一些唯一标识符来识别提供单个数据源和内容的强制/客户端。(请参阅在 tomcat 上多次部署相同的应用程序)
- 用另一个应用程序服务器替换 Tomcat
我想到但对我来说仍然有点奇怪的一种方法是,在部署期间动态更改所有类的包(使用 ANT 或类似的东西)。这样它们就不会在Tomcat TEMP 文件夹中发生碰撞。这可能是一个潜在的解决方案吗?甚至有可能以一种优雅的方式吗?
亲切的问候,克里斯托弗