excepción moldeada Clase: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
-
28-09-2019 - |
Pregunta
me sorprende con un problema en JBoss. Cuando intento de desplegar mi .war en el servidor, consigo este error siguiente:
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.jaxp.SAXParserF
actoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory
partir de la cual, es bastante evidente que existe un choque de bibliotecas. Por lo tanto, me quita el archivo JAR que contiene xerces, que resultó por jaxp-ri-1.4.1.jar. Ahora, cuando intento volver a implementar, consigo este nuevo error,
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
donde se queja de que no puede encontrar los analizadores XML.
Así pues, ahora mi pregunta es que ¿alguien sabe lo que puede ser una solución. Cualquier archivo jar jaxp que no contiene el paquete xerces?
Actualizar
Lo hice como se sugiere aquí y ahora tengo un nuevo error,
java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl
que es una clase de uno de los frascos que he eliminado que contiene SAXParserFactory: (
Solución
Parece que has borrado el archivo JAR mal. El ClassCastException original se informó cuando una instancia de SAXParserFactoryImpl (que es un subtipo de SAXParserFactory) está siendo fundido a SAXParserFactory.
es más probable que sea la excepción debido al hecho de que hay dos instancias de SAXParserFactory en lugar de dos instancias de SAXParserFactoryImpl están cargando en la JVM. En el momento de la fundición, la SAXParserFactory cargado por un cargador de clase diferente fue devuelto resultante en la excepción. Por ello, la solución es identificar JAR en la ruta de clases que tienen versiones contradictorias de SAXParserFactory. La eliminación de la propia aplicación analizador puede que no sea aconsejable, si Commons digestor está buscando una aplicación en particular.
Otros consejos
supongo ... Estás usando JBoss 5.1. Si es así, entonces es parser XML y la carga de clase tema. Debe definir jboss- classloading.xml
http://www.coderanch.com/t/523519/JBoss/Cast y http: // www. mastertheboss.com/jboss-application-ser...oss-5-classloading-issues.html