gpt4 book ai didi

java - 是否有任何 native 机制可以让我们覆盖现有部署的 Struts2 应用程序中的类?

转载 作者:行者123 更新时间:2023-12-01 15:08:57 25 4
gpt4 key购买 nike

具体来说,如果我们在应用程序服务器中部署了一个原始 .war 文件,是否可以部署一个提供原始文件中类的不同实现的 .war 文件,而无需修改基本代码来支持这一点?

编辑。我错误地表述了这个问题,我认为它实际上更简单。我们希望在同一基本路径中公开两个不同 WAR 的操作,而不是每个 WAR 的不同路径。可以在容器配置级别完成吗?或者您是否建议采用 URL 重写之类的方法?

最佳答案

不容易。通常,部署的 WAR 会成为 Java EE 服务器中的离散 Web 应用程序,并且它有自己的类加载器。你的第二个部署将获得另一个类加载器,尽管它们肯定会共享一些祖先,但不可能重新实现其他 WAR 中的东西 - 你的第二个部署将无法“看到”它,因为类加载器链接在一起。

可以使用Java agent重写正在运行的类。 ,尽管这很重要。您可以转换(重写传入)类,并且应该能够重写实时(实例化)类,尽管问题在于堆上可能存在使用旧代码和新代码的对象。

类重写是 Eclipse 的 Hot Code Replace 的方式工作原理,以及如何工作JRebel's快速重新部署解决方案功能。

您也许可以使用 AOP系统如AspectJ如果你真的想追求这个 - 但听起来你正在尝试解决构建或部署问题,而不是 AOP 是更合适的解决方案的问题。

关于java - 是否有任何 native 机制可以让我们覆盖现有部署的 Struts2 应用程序中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12566974/

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