Исключение с EAR в WebLogic 9.2 и Xerces144.jar - PullRequest
0 голосов
/ 28 октября 2009

Я использую приложение, в котором я поместил файл xerces144.jar в папку WEB-INF / lib файла war внутри файла EAR. При развертывании этого файла EAR на сервере WebLogic и запуске приложения я получаю следующее исключение. Мы используем Spring MVC. Однако, если я разверну то же приложение, используя только файл WAR, все будет работать нормально. Я также заметил, что если я удалил файлы xerces144.jar из файла EAR и развернул EAR, он развертывается без каких-либо проблем. В чем разница с этим файлом xerces144.jar, когда он включен в WAR-файл по сравнению с WAR-файлом, включенным в EAR и развернутым.

2009-10-27 21:05:50,468 ERROR - Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Parser configuration exception parsing XML from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is javax.xml.parsers.ParserConfigurationException: Unable to validate using XSD: Your JAXP provider [org.apache.xerces.jaxp.Document BuilderFactoryImpl@19b5ed8] does not support XML Schema. Are you running on Java
 1.4 with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB 

Ответы [ 2 ]

1 голос
/ 29 октября 2009

В чем разница с этим файлом xerces144.jar, когда он включен в WAR-файл и тот же WAR-файл, включенный в EAR и развернут.

Я думаю, что это как-то связано с загрузкой классов . При развертывании WAR или развертывании той же WAR внутри EAR Weblogic не создает одинаковую иерархию загрузчиков классов.

Самым странным является то, что Weblogic 9.x поставляется с Xerces 1.4.4 в 3rdparty.jar (по крайней мере, это верно для 9.1, было бы интересно проверить версию для 9.2). Это легко проверить, введя в командной строке следующую команду:

$ java -cp 3rdparty.jar org.apache.xerces.framework.Version

Если честно, я не знаю, что именно происходит и в чем проблема на самом деле, когда вы развертываете WAR внутри EAR с Xerces, упакованными в WAR. Во всех описанных вами сценариях я понимаю, что где-то на пути к классам есть банка Xerces.

Если вы действительно хотите развернуть Xerces-144.jar в WAR, не могли бы вы попытаться установить please-web-inf-classes в weblogic.xml и протестировать эту конфигурацию?

0 голосов
/ 10 ноября 2009

Поскольку weblogic имеет одинаковую версию xerces, я считаю, что нет необходимости упаковывать ее в ваше приложение

...