java - 并行运行多个版本的 servlet Web 应用程序

标签 java servlets version osgi

我想并行运行多个基于 Java Servlet 的 Web 应用程序的多个版本(如 myapp2.1、myapp2.2 ...)。

一种可能是将每个版本部署到一个单独的 servlet 上下文(它应该有自己的类加载器?!)。但我认为这将很难管理并且不灵活,因为应用程序是一个相当大的 block 。如果一个应用程序应该包含两个不同版本的服务怎么办?也许这不是一个好主意......

环境将为 GlassFish >= 3.0。

并行运行多个版本的 servlet 应用程序的更好方法是什么? OSGI 有帮助吗?

最佳答案

每个 Web 应用程序都将使用自己的 ClassLoader 加载(至少我知道的任何容器都是如此;我无法想象为什么容器不这样做)。所以,它应该可以正常工作。不同版本的类(class)不会相互干扰。

确保您没有在容器自己的 ClassLoader 中包含任何类——例如,将 .jar 放在 Tomcat 目录的 lib/中(不确定 Glassfish 的等价物)。这将由所有 Web 应用程序共享,并将覆盖 Web 应用程序中的任何内容。

关于java - 并行运行多个版本的 servlet Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050354/

相关文章:

java - 使用 Spring-Security 登录并重定向到所需 URL 时出现问题

java - 在黑莓上使用 HttpCore

java - 3.0之前版本的异步Servlet的解决方案?

php - CSS 中的版本控制图像,如何?

python - 找不到 python xlrd 版本

java - Spring Rest Web 服务返回 415

java - 基准测试应该放在 Java (Maven) 项目中的哪里?

mysql - 在 Java Web 应用程序上出现错误 [无法为 JSP 编译类] 的根本原因

java - Spring Security 过滤器映射 - 禁用某些 URL 模式

python - 检查并运行正确的 Tensorflow 版本 (v2.0)