Java JBoss类加载父级上次加载
我想了解上次在JBoss应用服务器中加载应用程序的情况。我们在JBoss 4.2.1 GA中部署了一个遗留应用程序,我们正在尝试上次加载的父应用程序 我指的是这个问题。 上次我想学一个家长。因此,我们使用maven jar插件和配置->addDefaultImplementationEntries=true创建了简单的maven jar包应用程序。我已经从同一个jar创建maven应用程序创建了2个jar版本1.0.0和1.0.1。jar具有单个类TestClass和一个简单的字符串返回方法,该方法返回从中加载类的jar版本。 我想要体验的是java2ClassLoadingCompliance的使用。我已经将1.0.0JAR版本打包在server/deploy/MyApplication/WEB-INF/lib(我的WEB应用程序是一个简单的servlet应用程序,它调用类的方法,从而打印从中调用jar的版本号)和server/lib中的1.0.1JAR版本 注意:从逻辑上讲,在应用程序中使用较旧版本的jar并用服务器库中的较新版本覆盖它是没有意义的,只是想体验类加载 我试过以下方法Java JBoss类加载父级上次加载,java,jboss,classloader,Java,Jboss,Classloader,我想了解上次在JBoss应用服务器中加载应用程序的情况。我们在JBoss 4.2.1 GA中部署了一个遗留应用程序,我们正在尝试上次加载的父应用程序 我指的是这个问题。 上次我想学一个家长。因此,我们使用maven jar插件和配置->addDefaultImplementationEntries=true创建了简单的maven jar包应用程序。我已经从同一个jar创建maven应用程序创建了2个jar版本1.0.0和1.0.1。jar具有单个类TestClass和一个简单的字符串返回方法,该
com.example:archive=JBossClassLoadingTestServlet-0.0.1-SNAPSHOT.ear
java2ParentDelegation=true
有人能帮我理解JBoss中的上一个配置吗?我在这里犯的错误是什么,总是从应用程序库加载类?我担心您的链接与您的实验不太相关。它与EAR部署更相关,在EAR部署中存在多模块部署,需要多个版本的库来隔离 在您的例子中,您只需在一个Jar中重写lib 以下是来自 还建议应用程序类加载器的实现如下 WAR中打包的类和资源优先于 驻留在容器范围的库jar中的类和资源 因此,JBoss遵循规范,它总是首先加载应用程序库 我没有找到这样的旧版本文档,但它应该类似于: 按最高优先级到最低优先级的顺序
<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>