gpt4 book ai didi

java - 如何用 JBoss EAP 中的另一个 jar 覆盖 WEB-INF/lib 中一个 jar 中的某些类?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:03 26 4
gpt4 key购买 nike

如果要覆盖的类称为 com.example.FooServlet 并且此类位于 jar WEB-INF/lib/foo.jar 中,如何覆盖它在另一个 jar 中有一个也称为 com.example.FooServlet 的类,比如说 bar.jar?

或者有什么方法可以确保首先加载 bar.jar 中的那个?

制作 bar.jar 模块是不行的,因为 FooServletWEB-INF/lib 中的许多 jar 导入大量类.


正如我上面所说,我试图在模块中包含 bar.jar,但是找不到类或没有类定义错误(记不清楚)作为 FooServlet 扩展/实现了一些额外的类/接口(interface),它们位于 WEB-INF/lib 的第 3 方 jar 中。

我不允许接触 foo.jar 或任何已经存在于 WEB-INF/lib 中的 jar。

最佳答案

你说你不能碰现有的 jar ,你似乎暗示你可以添加你的 jar 到WEB-INF/lib

根据 this :

  • WEB-INF/lib/*.jar 下的 jar 没有指定的优先顺序。
    因此,如果您在其中添加 bar.jar,您将不知道它是在 foo.jar 之前还是之后加载。
  • servlet 规范规定 WEB-INF/classes 下的类必须在 WEB-INF/lib/*.jar 下的任何内容之前加载

假设您可以在 WEB-INF/lib添加一个 jar,您应该能够在 WEB-INF/下添加一个(或多个)类类,而不触及那些地方。
因此,如果您希望首先加载 bar.jar 中的类,您可以将 jar 的内容解压缩到 WEB-INF/classes 下(或者只是类你想优先加载——例如 WEB-INF/classes/com/example/FooServlet.class)。

关于java - 如何用 JBoss EAP 中的另一个 jar 覆盖 WEB-INF/lib 中一个 jar 中的某些类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45755001/

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