Классовый отличный исключение: com.sun.org.apache.xerces.internal.jaxp.documentbuilderfactoryimpl

StackOverflow https://stackoverflow.com/questions/4278213

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top