如何解决是否可以将 tomee 与较新版本的 tomcat 一起使用?
我正在维护基于 Tomee 构建的旧服务器。 Tomee 版本比 tomcat 版本晚了几个月。我们需要在我的公司遵守严格的安全政策,即使是最新的 Tomee 版本也因为存在未修补的安全问题而提高安全标志。
有没有办法使用 tomee 及其所有托管依赖项,但要覆盖 tomcat 版本以进行部署?
部署环境是通过 docker 实现的,所以理想情况下,我只需在 dockerfile 中添加几行即可拉取更新的 tomcat 并覆盖 tomee 使用的那个。这听起来很简单还是有什么技巧?
解决方法
基本上,您需要遵守以下约定:
- Tomcat 10.0.x -> TomEE 9.0.X (EE 9)
- Tomcat 9.0.x -> TomEE 8.0.x (EE 8)
- Tomcat 8.0.x -> TomEE 7.x.x (EE 7)
在 Tomcat 主要版本之间切换不容易。在相应的 TomEE 版本中修补次要的 Tomcat 版本更新 - 但是 - 是可能的。
但是,有时需要替换 Tomcat 发行版中的某些类以从头开始构建完整的 TomEE 发行版。您可以在 related Maven build 文件中查看详细信息。此外,其他一些文件和属性也是“引导”的。相关内容包含在 Installer.java 和相关的 web.xml 中。
如果我需要修补 Tomcat 的版本并且发布周期对于我的需求来说太慢,我会走以下路径:
- 查看最新的发布标签
- 在父POM中修改Tomcat的版本
- 从头开始构建
mvn clean install -Dskip.tests=true
(需要 Java 8 + Maven) - 从
target
的tomee/apache-tomee/
文件夹中获取最新的 TAR.GZ / ZIP。 - 将其放入我的容器中。 1.) 到 4.) 可以在单独的 docker 构建镜像/容器中进行,然后转移到目标容器构建。
替代方案
您还可以使用嵌入式 TomEE Web 应用程序将 Tomcat“升级”为 TomEE。 但是,有一个已知的限制:如果您的 webapp 在“tomee” webapp 之前启动,则集成必须对笨重的 webapp 进行单独的取消部署/重新部署。此外,需要一些“魔法”来将 tomee webapp 的内容加载到 Tomcat 服务器类加载器中。 From current mailing list discussions,此网络应用程序将在不久的将来停用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。