Fusioni eccezione Classe: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
-
28-09-2019 - |
Domanda
Sono colpito con un problema in JBoss. Quando cerco di distribuire il mio .war al server, ottengo questo errore seguente,
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.jaxp.SAXParserF
actoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory
da cui, è del tutto evidente che c'è uno scontro di librerie. Così, ho rimosso il file jar che contiene xerces, che è successo a da jaxp-ri-1.4.1.jar. Ora, quando provo a ridistribuire, ottengo questo nuovo errore,
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
in cui si lamenta che non riesce a trovare i parser XML.
Così, ora le mie domande è che Qualcuno sa che cosa può essere una soluzione. Qualsiasi file jar jaxp che non contiene il pacchetto xerces?
Aggiorna
Ho fatto come suggerito qui e ora ho un nuovo errore,
java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl
che è una classe di uno dei vasi ho cancellato che contiene SAXParserFactory: (
Soluzione
Sembra che hai eliminato il JAR sbagliata. La ClassCastException originale è stato segnalato quando un'istanza di SAXParserFactoryImpl (che è un sottotipo di SAXParserFactory) è essere cast SAXParserFactory.
L'eccezione è più probabile che sia dovuto al fatto che ci sono due istanze di SAXParserFactory piuttosto che due istanze di SAXParserFactoryImpl essere caricati nella JVM. Al momento della colata, la SAXParserFactory caricato da un classloader diverso stato restituito causando l'eccezione. La correzione è quindi quello di individuare JAR nel classpath che dispongono di versioni contrastanti di SAXParserFactory. Rimozione l'attuazione parser in sé potrebbe non essere saggio, se Commons digestore è alla ricerca di una particolare implementazione.
Altri suggerimenti
sto cercando di indovinare ... State usando JBoss 5.1. Se è così allora è XML Parser e classloading problema. È necessario definire jboss-classloading.xml
http://www.coderanch.com/t/523519/JBoss/Cast e http: // www. mastertheboss.com/jboss-application-ser...oss-5-classloading-issues.html