Классовый отличный исключение: com.sun.org.apache.xerces.internal.jaxp.documentbuilderfactoryimpl
-
28-09-2019 - |
Вопрос
Я поражен проблемой в jboss. Когда я пытаюсь развернуть свой .war на сервер, я получу эту ошибку,
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.jaxp.SAXParserF
actoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory
Из чего вполне очевидно, что есть столкновение библиотек. Итак, я удалил файл JAR, который содержит Xerces, который произошел с JAXP-RI-1.4.1.jar. Теперь, когда я пытаюсь повторно развернуть, я получаю эту новую ошибку,
java.lang.NullPointerException
at org.apache.commons.digester.Digester.getXMLReader(Digester.java:944)
at org.apache.commons.digester.Digester.parse(Digester.java:1765)
at org.apache.struts.action.ActionServlet.initServlet(ActionServlet.java
Там, где жалуется, что он не может найти анализаторы XML.
Итак, теперь мои вопросы в том, что кто-нибудь знает, что может быть решением. Любой файл JAXP JAR, который не содержит пакет Xerces?
Обновлять
Я сделал так, как предложил здесь И теперь у меня есть новая ошибка,
java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl
который является классом из одной из банок, которые я удалил, который содержит SaxParserFactory :(
Решение
Похоже, что вы удалили неправильную банку. Оригинальный класс Classexexception был отмечен, когда экземпляр SAXPARSERFACTORYIMPL (который представляет собой подтип SAXPARSERFACTORORATORY), представляется SAXParserFactory.
Исключение, скорее всего, будет связано с тем, что существует два случая SaxParserFactory, а не два экземпляра SaxParserfactoryimpl, загружаются в JVM. Во время литья, было возвращено SAXParSerfactory, загруженные другим классовым загрузчиком, были возвращены в результате исключения. Следовательно, исправление - идентифицировать банки в вашем классе, которые имеют противоречивые версии SaxParserfactory. Удаление самого реализации парсера может не быть мудрым, если в рамках Commons Dipester ищет конкретную реализацию.
Другие советы
Я предполагаю, что ... вы используете JBoss 5.1. Если это так, то это анализатор XML и выгрузка классов. Вы должны определить jboss-classloading.xml
Видеть http://www.coderanch.com/t/523519/jboss/cast. а также http://www.mastertheboss.com/jboss-application-ser...oss-5-classloading-issues.html.