Tomcat 上的多个 Grails 应用程序

Posted

技术标签:

【中文标题】Tomcat 上的多个 Grails 应用程序【英文标题】:Multiple grails applications on Tomcat 【发布时间】:2011-01-11 03:16:32 【问题描述】:

我即将在单个 Tomcat 服务器上部署多个 grails 应用程序,我有以下疑问:

    在内存使用方面:将通用 grails 库放在 shared/lib 下而不是将它们放在每个应用程序的 war 文件中是否会有所不同?有这些罐子的清单吗? 如果是这样,是否有一种机制不将这些 jar 打包到“生产”环境的 war 文件中?我使用的是 NetBeans 6.7。 我即将使用Tomcat 5.5;有没有推荐使用 6.0 的体验?

谢谢

【问题讨论】:

【参考方案1】:

我认为最好的做法是让库保持在战争中,因为如果您更新一个共享的库,那么您必须确保它与您使用它的所有应用程序兼容。我们通常使用 grails 和 spring 执行此操作,这样我们每次升级时都不必返回并进行兼容性测试。

我也相信 tomcat 会为每个应用程序加载一个类的实例,因此您不会通过将其用作公共类来节省内存。

另见:

Does Tomcat load the same library file into memory twice if they are in two web apps?

【讨论】:

【参考方案2】:

1) 将 jars 放在 shared/lib 或 common/lib 中可能会减少 PermGen 所需的内存量。恕我直言,最大的优势是上传战争文件要快得多。 但请记住,正如 TripWird 所说,共享 jar 将所有已部署的应用程序与同一个 grails 版本联系起来。升级变成了“一无所有”的游戏。

2) 如果你使用

grails prod war --nojars

然后所有的 jar 文件都被排除在战争之外。

【讨论】:

以上是关于Tomcat 上的多个 Grails 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Grails 应用程序 - Tomcat 与 Weblogic 上的 JNDI

MySQL 连接超时问题 - 使用 Hibernate 和 ORM 的 Tomcat 上的 Grails 应用程序

如何在一个 Tomcat + Apache 上部署多个 Grails 应用程序?

Spring 安全性不适用于 JBoss 应用程序服务器上的 Grails 项目

Tomcat“Log4J”上的 Grails WAR 根本不起作用

在tomcat上的grails spring security中登录用户的会话