Как сделать так, чтобы Weblogic 10 предпочитал файлы jar в myApp.war: / WEB-INF / lib / без выдачи VerifyErrors? - PullRequest
9 голосов
/ 08 июня 2011

Загрузчик классов 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.)

Ответы [ 3 ]

5 голосов
/ 15 июня 2011

Мне никогда не удавалось исправить это удовлетворительно, за исключением указания -Djavax.xml.parsers.SAXParserFactory=[xerces sax parser factory class name] (и так далее для других фабрик JAXP, таких как проверка SchemaFactory) при запуске Weblogic.

Ничего из того, что фильтрует / prefer-web-inf, не сработало, возможно, из-за Weblogic, требующего при запуске библиотек JAXP до того, как он прочитает любой из файлов конфигурации WAR / EAR.

1 голос
/ 09 июня 2011

Это видео дает хороший обзор возможностей, которые вы имеете для настройки WebLogic FilteringClassLoaders:

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

0 голосов
/ 24 августа 2011

У меня тоже была эта проблема с tomcat-arquillian.Оказывается, «xml-apis 2.0.2» был в моем classpath, который на самом деле является xml-apis 1.0.b2 и слишком стар, чтобы быть совместимым с xercesImpl 2.9.1, для которого требуется xml-apis 1.3.04.

...