1

我熟悉Tomcat的传统类加载系统:

    Bootstrap
        |
     System
        |
     Common
     /     \
Webapp1   Webapp2 ...

我正在为部署在 Tomcat 6 上的现有 Web 应用程序编写一个测试器 Web 应用程序。理想情况下,使用上下文参数指示要测试的应用程序的上下文路径(我们称之为主题),然后它将直接加载图书馆在它自己之前的主题。所以我希望得到的树是(不是胆小的人,你已经被警告过):

    Bootstrap
        |
     System
        |
     Common
     /     \
Subject   Webapp2 ...
   |
Tester

我可能可以通过复制库获得相同的效果,但这并不是一个优雅的解决方案,因为这需要主题和测试者都已经由 Tomcat 从它们的 war 文件中扩展。

我的问题是:假设 Subject 已经存在并且它独立于 Tester 工作,有没有一种方法可以通过简单地在 webapp 目录中添加 war 文件并启动 Tomcat 来完成(理想情况下不修改 Tomcat 配置,但可以理解的是可能不可能)?我的后续问题是,我应该注意这种技术(安全性或其他方面)是否有任何缺点?

感谢任何反馈,因为我正在尝试确定这是否是一个可行的想法,或者我是否正在创造弗兰肯斯坦的怪物。

注意: 我可能应该补充一点,Subject 不仅仅是任何通用应用程序,而是我们公司实施的特定应用程序,因此虽然 Subject 应该独立于 Tester 工作,但这并不意味着我不能修改 Subject 如果它有助于这项工作.

4

1 回答 1

1

我认为你正在创造一个弗兰肯斯坦的怪物。您可以通过实现自定义类加载器来归档它,但这至少需要了解tomcat 提取主题的位置。除此之外,在重新部署主题时,您很可能会遇到问题。您希望进行什么样的测试?对于您计划做的事情,也许有一种更简单和更强大的方法。

于 2012-11-28T10:28:12.560 回答