gpt4 book ai didi

java - 将 Tapestry jar 部署到tomcat lib目录中是错误的吗?

转载 作者:行者123 更新时间:2023-11-28 22:27:47 28 4
gpt4 key购买 nike

我正在运行一个 tomcat 8 服务器,我正在其中部署多个 Tapestry 网络应用程序。当我用 maven 构建 war 文件时,所有依赖项(包括 Tapestry 框架 jar)都打包到 WEB-INF/lib 中。所以我在每一场 war 中都有 Tapestry jar 。据我所知,tomcat 为每个 war 文件使用不同的类加载器,所以我可能使用了比需要更多的内存资源,这是我的担忧。

我所做的是将 Tapestry jar 部署到 ${catalina.base}/lib/tapestry 并相应地更新 catalina.properties,以便 tomcat 将 jar 加载到该目录中。另外,我更改了项目的 Maven 依赖项,以便 Tapestry 库不会打包到 WEB-INF/lib 中。它似乎工作。但我想知道这种工作方式是否有问题,可能会在未来带来问题。似乎没有人这样做:我在 Tapestry 网站上找不到任何关于这是好政策还是坏政策以及原因的信息。有人知道吗?

最佳答案

从长远来看,拥有独立的 war 文件会更好,每个文件都包含尽可能多的所需依赖项,而不是依赖“提供的”依赖项或其他类路径依赖项。在某些情况下(但不是很多)您需要将 jars 放在 war 文件之外,以便服务器可以在启动时访问它们,但这听起来不像是其中一种情况。

将 Tapestry jar 放在共享位置将是一个完全可以忽略不计的优化。此外,如果您的某个应用程序需要不同版本的 Tapestry,以后可能会出现问题。

另一个潜在的问题是,如果您切换到与 Tomcat 不同的应用程序服务器(甚至是不同版本的 Tomcat)。不同的应用服务器以不同的方式处理类加载,这是您要应对的最后一类问题。

关于java - 将 Tapestry jar 部署到tomcat lib目录中是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34815965/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com