【问题标题】:JBoss ClassLoading Parent-Last loadingJBoss ClassLoading Parent-Last loading
【发布时间】:2017-02-17 17:36:46
【问题描述】:

我想了解 parent-last 在应用程序 JBoss 应用程序服务器中的加载。我们在 JBoss 4.2.1 GA 中部署了一个遗留应用程序。我们正在为此尝试父级最后加载。

我指的是这个link。 我想学习父母最后一次加载。因此,使用 maven-jar-plugin 和配置创建了简单的 maven jar 包应用程序 -> addDefaultImplementationEntries = true。我从同一个 jar 创建 maven 应用程序创建了 2 个 jar 版本 1.0.0 和 1.0.1。该 jar 具有单个类 TestClass 和一个简单的 String 返回方法,该方法返回加载该类的 jar 的版本。 想体验一下java2ClassLoadingCompliance的使用。我已将版本 1.0.0 jar 打包在 server/deploy/MyApplication/WEB-INF/lib 中(我的 Web 应用程序是一个简单的 servlet 应用程序,它调用类的方法,从而打印从哪个 jar 调用它的版本号.) 和 server/lib 中的 1.0.1 版 jar。

注意:从逻辑上讲,在应用程序中使用旧版本的 jar 并用服务器 lib 中存在的新版本覆盖它是没有意义的,但只是想体验类加载。

我已经尝试了以下

  1. meta-inf 文件夹中没有任何 jboss-web.xml。
  2. 我尝试在 META-INF 中引入 jboss-we.xml 并使用 java2ClassLoadingCompliance = false 做同样的事情。
  3. 使用 java2ClassLoadingCompliance = true。

应用程序库中的所有时间类都将由应用程序加载。

我的 jboss-web.xml 看起来像 reference

<jboss-web>
   <class-loading java2ClassLoadingCompliance="true">
      <loader-repository>
         com.example:archive=JBossClassLoadingTestServlet-0.0.1-SNAPSHOT.ear
         <loader-repository-config>java2ParentDelegation=true</loader-repository-config>
      </loader-repository>
   </class-loading>
</jboss-web>

有人可以帮助我理解 JBoss 中的 parent-last 配置吗?我在这里做的错误是什么总是加载来自应用程序库的类?

【问题讨论】:

  • 天哪,JBoss 4.2,你怎么了? :-o

标签: java jboss classloader


【解决方案1】:

恐怕您的链接与您的实验不太相关。更多的是关于EAR部署,其中存在多模块部署,需要多个版本的lib来隔离。

在您的情况下,您只需在一个 Jar 中覆盖 lib。

以下来自Servlet Spec:

还建议实现应用程序类加载器,以便 WAR 中打包的类和资源优先加载 驻留在容器范围的库 JAR 中的类和资源。

所以,JBoss 遵循规范,它总是首先加载应用程序库。

我没有找到这样的旧版本文档,但它应该类似于AS7

按照优先级从高到低的顺序

  1. 系统依赖项 - 这些是由容器自动添加到模块的依赖项,包括 Java EE API。
  2. 用户依赖项 - 这些是通过 JBoss-deployment-structure.xml 或通过 Dependencies: manifest 条目添加的依赖项。
  3. 本地资源 - 在部署本身中打包的类文件,例如来自 WEB-INF/classes 或 WEB-INF/lib 的 class 文件。
  4. 部署间依赖关系 - 这些是对 ear 部署中其他部署的依赖关系。这可以包括 ear 的 lib 目录中的类,或在其他 EJB jar 中定义的类。

相关:

【讨论】:

    猜你喜欢
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多