加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JBoss ClassLoading Parent-Last loading

发布时间:2020-12-15 02:18:22 所属栏目:Java 来源:网络整理
导读:我想了解应用程序JBoss应用程序服务器中的父上次加载.我们在JBoss 4.2.1 GA中部署了遗留应用程序.我们正在尝试父母最后一次加载. 我指的是这个link. 我想学习父母最后一次加载.所以用maven-jar-plugin和配置创建了简单的maven jar包应用程序 – addDefaultIm
我想了解应用程序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的使用.我已经在服务器/ deploy / MyApplication / WEB-INF / lib中打包了1.0.0版本的jar(我的Web应用程序是一个简单的servlet应用程序,它调用类的方法,从而打印从中调用jar的版本号.)和server / lib中的1.0.1版jar.

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

我尝试了以下内容

>在meta-inf文件夹中没有任何jboss-web.xml.
>我尝试在META-INF中引入jboss-we.xml,并使用java2ClassLoadingCompliance = false执行相同的操作.
>使用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中的父级最后配置吗?我在这里做的错误总是来自应用程序li??b的类被加载?

解决方法

我担心您的链接与您的实验无关.它与EAR部署更相关,其中存在多模块部署并且需要多个版本的lib来隔离.

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

以下是Servlet Spec:

It is recommended also that the application class loader is implemented so
that classes and resources packaged within the WAR are loaded in preference to
classes and resources residing in container-wide library JARs.

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

我没有找到这样的旧版本doc,但它应该与AS7类似:

In order of highest priority to lowest priority

  1. System Dependencies – These are dependencies that are added to the module automatically by the container,including the Java EE APIs.
  2. User Dependencies – These are dependencies that are added through JBoss-deployment-structure.xml or through the Dependencies: manifest entry.
  3. Local Resource – Class files packaged up inside the deployment itself,e.g. class files from WEB-INF/classes or WEB-INF/lib of a war.
  4. Inter-deployment dependencies – These are dependencies on other deployments in an ear deployment. This can include classes in an ear’s lib directory,or classes defined in other EJB jars.

有关:

> a similar jetty classloading problem

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读