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>
这只是给了我很多验证错误:
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中。)
答案 0 :(得分:5)
除了在启动Weblogic时指定-Djavax.xml.parsers.SAXParserFactory=[xerces sax parser factory class name]
(等其他JAXP工厂,如验证SchemaFactory)之外,我无法令人满意地解决这个问题。
过滤/ prefer-web-inf
没有任何工作,可能是由于Weblogic在启动之前需要JAXP库才能读取任何WAR / EAR配置文件。
答案 1 :(得分:1)
此视频概述了配置WebLogic FilteringClassLoaders的选项:
答案 2 :(得分:0)
我也有tomcat-arquillian这个问题。事实证明“xml-apis 2.0.2”在我的类路径中,实际上是xml-apis 1.0.b2,而且太旧而不能与需要xml-apis 1.3.04的xercesImpl 2.9.1兼容。