我想了解父级-在应用程序JBoss应用服务器中加载的最后一个。我们在JBoss 4.2.1GA中部署了一个遗留应用程序。我们正在尝试最后一次加载父程序。
我指的是这个链接。我想学习一位家长的最后一次加载。因此,使用maven - jar插件和配置-> addDefaultImplementationEntries = true创建了简单的maven jar包应用程序。我从同一个jar创建maven应用程序中创建了2个jar版本1.0.0和1.0.1。jar只有一个类TestClass和一个简单的字符串返回方法,该方法返回加载类的jar版本。我想体验java2ClassLoadingCompliance的使用。我已经在服务器/部署/MyApplication/ web /lib中打包了1.0.0jar版本(我的web应用程序是一个简单的servlet应用程序,它调用类的方法,从而打印从其中调用jar的版本号)。以及服务器/lib中的1.0.1JAR版本。
备注:从逻辑上讲,在应用程序中使用jar的旧版本并使用服务器库中的更新版本覆盖jar是没有意义的,而只是想体验类的加载。
我试过以下几种方法
应用程序库中的所有时间类都将由应用程序加载。
我的jBos-web.xml看起来像参考文献
<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中的父级配置吗?我在这里做的错误是,总是加载来自应用程序库的类。
发布于 2017-03-04 13:58:44
恐怕你的链接与你的实验没有这么大的关系。在EAR部署中,存在多模块部署,需要多个版本的lib来隔离,这与EAR部署有更多的关系。
在您的例子中,您只需在一个Jar中重写lib。
以下是来自Servlet规范:的
还建议实现应用程序类加载器,以便优先加载包装在WAR中的类和资源,而不是驻留在容器范围的库JAR中的类和资源。
因此,JBoss遵循规范,它总是首先加载应用程序库。
我没有找到这样的旧版本文档,但它应该类似于AS7
按最高优先级到最低优先级的顺序
相关信息:
https://stackoverflow.com/questions/42304170
复制相似问题