9

Weblogic 类加载器似乎更喜欢系统库而不是我战争中的WEB-INF/lib/.

我尝试在 中设置以下内容WEB-INF/weblogic.xml,但没有成功:

<weblogic-web-app>
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>

这只是给了我很多VerifyErrors:

exception is java.lang.VerifyError: (class: org/apache/xerces/parsers/AbstractSAXParser, method: parse signature: (Lorg/xml/sax/InputSource;)V) Incompatible object argument for function call
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
        Truncated. see log file for complete stacktrace

(我试图避免将 WAR 打包到 EAR 中。)

4

3 回答 3

5

除了在启动 Weblogic 时指定-Djavax.xml.parsers.SAXParserFactory=[xerces sax parser factory class name](对其他 JAXP 工厂,如验证 SchemaFactory 等)之外,我永远无法令人满意地解决这个问题。

没有任何过滤/prefer-web-inf东西起作用,可能是由于 Weblogic 在启动时需要 JAXP 库,甚至在它读取任何 WAR / EAR 配置文件之前。

于 2011-06-15T07:55:58.297 回答
1

该视频很好地概述了用于配置 WebLogic FilteringClassLoaders 的选项:

http://www.youtube.com/watch?v=ArLTKapjV_8

于 2011-06-09T19:28:37.617 回答
0

我对tomcat-arquillian也有这个问题。原来“xml-apis 2.0.2”在我的类路径中,它实际上是 xml-apis 1.0.b2,它太旧而无法与需要 xml-apis 1.3.04 的 xercesImpl 2.9.1 兼容。

于 2011-08-24T10:02:15.383 回答