Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2009, 04:19
jlgarcia1977
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 15 años, 7 meses
Puntos: 5
Problemas con Set en Castor

Tengo un bean que contiene varios atributos que son Set:

...
private Set<Tercero> tercerosIndirectos = new HashSet<Tercero>(0);
private Set<Tercero> tercerosDirectos = new HashSet<Tercero>(0);
...

Al generar el xml desde el bean me genera bien los nodos..

...

<terceros-indirectos>
<datos-personales>
<dni>dni de otro familiar</dni>
<apellido1>apellido 1 otro familiar</apellido1>
<nombre>nombre otro familiar</nombre>
<apellido2>apellido 2 otro familiar</apellido2>
</datos-personales>
<direccion>
<codigo-postal>codigo postal de otro familiar</codigo-postal>
<direccion>direccion completa de otro familiar</direccion>
<provincia>
<provincia-ds>provincia otro familiar</provincia-ds>
</provincia>
</direccion>
</terceros-indirectos>

...

pero a leer del xml y meterlo en el bean con el:

Usuario usuario=(Usuario)Unmarshaller.unmarshal(Usuario.cl ass, reader);

Me da el siguiente error...

org.exolab.castor.xml.MarshalException: Unable to instantiate java.util.Set; {File: [not available]; line: 15; column: 24}
at org.exolab.castor.xml.Unmarshaller.convertSAXExcep tionToMarshalException(Unmarshaller.java:794)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:760)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:626)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:840)
at com.ibtim.beneficios.importadorXML.prueba.CrearXml DesdeEntidad.crearBeanUsuarioDesdeXML(CrearXmlDesd eEntidad.java:52)
at com.ibtim.beneficios.importadorXML.prueba.CrearXml DesdeEntidad.main(CrearXmlDesdeEntidad.java:41)
Caused by: java.lang.InstantiationException: java.util.Set
at org.exolab.castor.xml.UnmarshalHandler.createInsta nce(UnmarshalHandler.java:2583)
at org.exolab.castor.xml.UnmarshalHandler.startElemen t(UnmarshalHandler.java:2347)
at org.exolab.castor.xml.UnmarshalHandler.startElemen t(UnmarshalHandler.java:1435)
at org.apache.xerces.parsers.AbstractSAXParser.startE lement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse( Unknown Source)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:748)
... 4 more
Caused by: java.lang.InstantiationException: java.util.Set
at org.exolab.castor.xml.UnmarshalHandler.createInsta nce(UnmarshalHandler.java:2583)
at org.exolab.castor.xml.UnmarshalHandler.startElemen t(UnmarshalHandler.java:2347)
at org.exolab.castor.xml.UnmarshalHandler.startElemen t(UnmarshalHandler.java:1435)
at org.apache.xerces.parsers.AbstractSAXParser.startE lement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse( Unknown Source)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:748)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:626)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:840)
at com.ibtim.beneficios.importadorXML.prueba.CrearXml DesdeEntidad.crearBeanUsuarioDesdeXML(CrearXmlDesd eEntidad.java:52)
at com.ibtim.beneficios.importadorXML.prueba.CrearXml DesdeEntidad.main(CrearXmlDesdeEntidad.java:41)
Caused by: java.lang.InstantiationException: java.util.Set
at org.exolab.castor.xml.UnmarshalHandler.createInsta nce(UnmarshalHandler.java:2583)
at org.exolab.castor.xml.UnmarshalHandler.startElemen t(UnmarshalHandler.java:2347)
at org.exolab.castor.xml.UnmarshalHandler.startElemen t(UnmarshalHandler.java:1435)
at org.apache.xerces.parsers.AbstractSAXParser.startE lement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerI mpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse( Unknown Source)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:748)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:626)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmar shaller.java:840)
at com.ibtim.beneficios.importadorXML.prueba.CrearXml DesdeEntidad.crearBeanUsuarioDesdeXML(CrearXmlDesd eEntidad.java:52)
at com.ibtim.beneficios.importadorXML.prueba.CrearXml DesdeEntidad.main(CrearXmlDesdeEntidad.java:41)


¿Alguien me puede ayudar?

No se si necesitare crear un mapping...pero no se como hacerlo...
Gracias.