PDA

View Full Version : [JAVA] Problema di creazione di un file xml da una HashMap usando la libreria Castor


Eten
22-04-2009, 19:29
Salve ragazzi,
volevo convertire una HashMap<String, MyClass> , dove MyClass è una classe da me creata, in un file xml e visto che il metodo marshal della classe Marshaller non mi dava alcun risultato ho deciso che forse era il caso di settare la classe con un file di mapping applicato ad una classe contenitore, che contiene l'HashMap, creato secondo la procedura che potete vedere qui (http://www.castor.org/how-to-map-a-hashtable.html).
Ovviamente ho un errore:
org.exolab.castor.mapping.MappingException:
The return type for method public java.lang.Object org.exolab.castor.mapping.MapItem.getValue()
does not match the declared field type mypackage.MyClass
Il che è anche vero ma come fa allora a funzionare l'esempio riportato sul sito delle libreria???
Ogni consiglio è ben accetto...

banryu79
23-04-2009, 09:29
Salve ragazzi,
volevo convertire una HashMap<String, MyClass> , dove MyClass è una classe da me creata, in un file xml e visto che il metodo marshal della classe Marshaller non mi dava alcun risultato ho deciso che forse era il caso di settare la classe con un file di mapping applicato ad una classe contenitore, che contiene l'HashMap, creato secondo la procedura che potete vedere qui (http://www.castor.org/how-to-map-a-hashtable.html).
Ovviamente ho un errore:
org.exolab.castor.mapping.MappingException:
The return type for method public java.lang.Object org.exolab.castor.mapping.MapItem.getValue()
does not match the declared field type mypackage.MyClass
Il che è anche vero ma come fa allora a funzionare l'esempio riportato sul sito delle libreria???
Ogni consiglio è ben accetto...

Se nel file di mapping hai impoststo il campo "value" (per la Map) con il tipo corrispondende al tuo tipo (MyClass) e non a Object, prova a specificarlo come di tipo Object.

Non conosco Castor, ma leggendo la pagina che hai linkato e facendo una ricerca du Google con la stringa di errore che hai postato ho letto che sembrerebbe un problema comune e questo è un possibile workaround.