我部署了一个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的情况下做到这一点吗?
答案 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进行了比较