venerdì 3 ottobre 2008

Problema lettura file di proprietà in Eclipse

Qualche giorno fa ho ripristinato il workspace di Eclipse 3.3 per una nuova installazione di Eclipse 3.4, ma il riavvio di un progetto Java mi ha causato qualche problema. In particolare mi sono trovato la seguente eccezione:

java.lang.ClassCastException: org.apache.xerces.dom.DeferredCommentImpl cannot be cast to org.w3c.dom.Element
ERROR - Cannot load properties from the specified file <./conf/login.prop> java.lang.ClassCastException: org.apache.xerces.dom.DeferredCommentImpl cannot be cast to org.w3c.dom.Element

at java.util.XMLUtils.importProperties(XMLUtils.java:97)
at java.util.XMLUtils.load(XMLUtils.java:69)
at java.util.Properties.loadFromXML(Properties.java:852)
at g2.utility.HRPMProperties.(HRPMProperties.java:78)
at g2.utility.HRPMProperties.getInstance(HRPMProperties.java:94)
at g2.gui.workers.ApplicationSwingWorker.(ApplicationSwingWorker.java:36)
at g2.main.Main.main(Main.java:37)

leggendo un file di proprietà Java in formato XML. Ho ricontrollato il classpath e le librerie erano tutte al loro posto, quindi mi è stato un po' difficile individuare il problema. Ho aggiornato Xerces, ho provato a copiarne diverse versioni ma niente. Infine qualcuno sul forum della Sun mi ha indicato la soluzione: Java 6 viene distribuito con la sua versione di Xerces, e quindi forzare l'utilizzo di una versione differente può creare alcuni problemi di compatibilità. Basta rimuovere allora i package di Xerces dal classpath per risolvere il problema.

Nessun commento: