【发布时间】: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 中存在的新版本覆盖它是没有意义的,但只是想体验类加载。
我已经尝试了以下
- 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 中的 parent-last 配置吗?我在这里做的错误是什么总是加载来自应用程序库的类?
【问题讨论】:
-
天哪,JBoss 4.2,你怎么了? :-o
标签: java jboss classloader