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 项目