如何在Jboss 5.1的lib/endorsed目录中覆盖jar文件?

3
我们需要在我们的ear中运行最新版本的Xalan/Serialize/Xerces jar文件。当我们运行应用程序代码并随后获得“java.lang.NoSuchMethodError”时,Jboss 5.1 lib/endorsed目录中的版本会首先被加载。
我阅读了像这篇文章一样的文章:http://www.openscope.net/2010/07/15/setting-up-a-jboss-instance-v5-x-class-loading/ 我已经将一个jboss-app.xml文件添加到我的meta-inf目录中,并将其打包到我的ear中。以下是我添加的内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-app PUBLIC
        "-//JBoss//DTD Java EE Application 5.0//EN"
        "http://www.jboss.org/j2ee/dtd/jboss-app_5_0.dtd">
<jboss-app>  
  <loader-repository>  
  org.apache.xalan:archive=servicebroker-enterprise.ear
     <loader-repository-config>  
     java2ParentDelegation=false  
     </loader-repository-config>  
  </loader-repository>  
</jboss-app>

当我使用这段代码时,我的Ear没有加载到jboss中。我看到它找到了Ear,然后只是跳过它而加载其他的Ear。我已经开启了调试日志,但是没有看到任何关于为什么没有加载它的错误或提及。
为什么我的Ear没有被加载?
1个回答

0
我建议您同步您的Xalan/Serialize/Xerces版本和JBoss的版本。首先,尝试只用新版本替换JBoss的版本,也许会起作用。另一种方法是考虑升级您的JBoss到使用最新的Xalan/Serialize/Xerces的新版本。改变类加载过程的行为将引入新问题,就我所知。

是的,那些是我们尝试过的选项。只是将新的xalan、serialize、xerces库直接放入jboss中会导致jboss无法运行。:) 改变类加载过程确实引入了其他加载jax-ws web服务的问题。总体而言,这是一个糟糕的情况... - Paul Lemke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接