2011-02-07 11 views
9

sto ottenendo il seguente messaggio di errore:ClassCastException durante l'analisi XML con WebLogic

java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory non può essere lanciato a javax.xml.parsers.DocumentBuilderFactory

Ho passato alcuni forum alla ricerca di questo. Hanno detto di rimuovere xml-apis.jar o che i file JAR erano in conflitto. Ma anche se ho fatto tutti i passaggi suggeriti, sto ricevendo lo stesso errore.

+1

Controlla la risposta di sotretus in questa discussione. Potrebbe essere applicabile a te se stai usando Maven2. http://forum.springsource.org/archive/index.php/t-22597.html –

+0

Hai verificato che non è rimasto alcun barattolo in WEB-INF/lib? –

+0

Ho tutti i jar nella cartella WEB-INF/lib. Ma ricevendo questo errore ... – rose

risposta

4

Penso che Banang abbia ragione. Il forum http://forum.springsource.org/showthread.php?t=22597 descrive una soluzione per problemi simili.

In genere tali problemi si verificano quando esistono diverse versioni della stessa classe nel percorso di classe mentre quelle versioni sono caricate da caricatori di classi differenti. Una versione di DocumentBuilderFactory è stata caricata dal programma di caricamento classe di sistema, un'altra dal caricatore di classe dell'applicazione aziendale. Quando si chiama il parser XML viene utilizzata la versione del genitore della classe. Quando lanci la tua versione privata viene utilizzata. Queste versioni sono incompatibili che causa ClassCastException.

11

È sempre il xml-apis.jar. Rimuovili dal classpath (ad esempio rimuovili da WEB-INF/lib della tua webapp).

1

Volevo fare una leggera aggiunta alle risposte precedenti a questa domanda, nel caso in cui qualcun altro si trovasse nella stessa situazione. Ho avuto lo stesso problema sul nostro server WebLogic 9.2 a causa del mio uso di CXF 2.2.3. Oltre alla rimozione di xml-apis.jar menzionato in precedenza, ho anche dovuto rimuovere una libreria xmlParserAPI.

Come sto usando Maven2 era semplicemente una questione di aggiungere un'altra inclusione.

<!-- CXF --> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-bundle</artifactId> 
     <version>${dependency.version.cxf}</version> 
     <scope>compile</scope> 
     <exclusions> 
      <exclusion> 
       <artifactId>xml-apis</artifactId> 
       <groupId>xml-apis</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xercesImpl</artifactId> 
       <groupId>xerces</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xmlbeans</artifactId> 
       <groupId>org.apache.xmlbeans</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xmlParserAPIs</artifactId> 
       <groupId>xerces</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

Spero che questo aiuti qualcuno!

+1

Grazie . sebbene la mia configurazione richiedesse solo l'esclusione xml-apis. – Neoryder

1

Abbiamo anche questo problema. Il motivo dell'errore era nella libreria gwt. Ricevimento: escludere tutte le librerie client gwt da distr.

2

Il motivo di questo problema è che si hanno più jar con lo stesso nome di classe nella libreria. Vai a WEB-INF/lib e rimuovi xml-apis-1.0.b2.jar e stax-api-1.0.1.jar o rimuovili da te stesso pom.xml e sarai a posto.

4

Rimuovere xml-beans-1.xb2 nella directory lib. Modificato il POM in modo che non include il file jar con il seguente:

<dependency> 
    <groupId>xml-apis</groupId> 
    <artifactId>xml-apis</artifactId> 
    <version>1.0.b2</version> 
    <scope>provided</scope> 
</dependency> 
0

Per quanto riguarda il mio caso, sono riuscito a risolvere il problema rimuovendo libreria XML-apis e anche l'aggiornamento di una libreria di elaborazione XML:

Da org.apache.xmlbeans/xmlbeans/2.4.0

Into org.apache.xmlbeans/xmlbeans/2.6.0

FYI, sto usando Weblogic 10.3.6.0.

Problemi correlati