如何告诉JBoss 4.2.3.GA首先在我的war文件lib目录中加载jar?

时间:2011-01-25 00:37:23

标签: java jboss jboss-4.2.x

我部署了一个web存档,该war引用了一个与$ JBOSS_HOME / server / default / lib中的jar文件冲突的jar文件。我可以手动删除有问题的罐子,但我更喜欢一种允许我在JBoss上指定罐子的解决方案。我甚至想告诉JBoss排除特定的罐子,如果可能的话。

我最接近的是在我的war的META-INF目录中添加jboss-web.xml中的内容,但我显然没有在那里做点什么。这就是我到目前为止所做的:

<?xml version="1.0" encoding="UTF-8"?>

<jboss-web>
  <class-loading java2ClassLoadingCompliance="false">
    <loader-repository>com.amce:archive=WHATEVER</loader-repository>
    <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
  </class-loading>
</jboss-web>

如果出现这样的错误,就会失败:

ERROR [13]] Exception sending context initialized event to listener instance of class org.jboss.web.jsf.integration.config.JBossJSFConfigureListener
java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory
    at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:128)
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.getConfiguredFactory(ConfigureListener.java:697)
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.scanForFacesServlet(ConfigureListener.java:669)
   ...

这个错误让我相信我只是错误地指定了jboss-web语法(某处有xml架构)?但是,我甚至不确定自己是否正走在正确的道路上。无论如何我还能在不修改JBoss的情况下做到这一点吗?

2 个答案:

答案 0 :(得分:1)

<强> java2ParentDelegation =假即可。 Read here了解更多详情。

Java EE类加载详细信息:Java EE class loading standard

答案 1 :(得分:0)

jboss-web.xml属于您应用的WEB-INF目录,而不是META-INF。你的xml文件看起来是正确的,我将它与我已经部署到Jboss-4.x

的WAR进行了比较