Fusioni eccezione Classe: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl

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

  •  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: (

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top