【问题标题】:Classes or Jar, who wins?类或罐子,谁赢了?
【发布时间】:2013-02-10 09:42:39
【问题描述】:

是不是,在重复类的情况下, “classes”中的那个会被录取吗?

考虑在 Web 应用程序中,A 类将直接可用

WEB-INF/类

和一个罐子的一部分

WEB-INF/lib

上课的人总是赢吗?

【问题讨论】:

  • 至少从我使用不同应用程序服务器和 servlet 容器的经验来看,我会说“是”,但我不确定这是根据定义还是仅仅通过“常见用法”。不过,这个问题很有趣。
  • 显然如此。以下链接可能有用:stackoverflow.com/questions/4739302/…
  • 据我所知,标准中没有规定。不同的应用程序服务器的行为非常不同。 weblogic 和 jboss 会先选择 appserver 提供的 jar。

标签: java web classloader


【解决方案1】:

这取决于类路径 - 首先出现的类路径条目将首先获胜。此外,如果有多个类加载器,将首先尝试加载了依赖类的类加载器。它不应该取决于类是否在 jar 中。记录在here

一般来说,不要这样做,因为在同一个名称下拥有多个类是真正的灾难。

【讨论】:

  • 同名下的多个类是真正的灾难当然,但是当你无法控制时,在复杂的 Web 应用程序(100 多个 jars)中还能做什么罐子的建造?
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 2013-02-23
  • 2015-01-24
  • 1970-01-01
相关资源
最近更新 更多