I am using the same example as shown in the documentation
[http://www.castor.org/reference/html-single/index.html#d0e2586].
XML produced was what I expected ..
<person>
<name>Karephul</name>
<dob>1982-03-05</dob>
</person>
....
but while Unmarshalling, it throws an exception:
-----------------------------------------------------------------------
DEBUG [main] (ResolveHelpers.java:143) - Ignored problem at loading class:
java.util.DateDescriptor through class loader:
sun.misc.launcher$appclassloa...@a39137, exception:
java.lang.ClassNotFoundException: java.util.DateDescriptor
DEBUG [main] (ResolveHelpers.java:143) - Ignored problem at loading class:
java.util.descriptors.DateDescriptor through class loader:
sun.misc.launcher$appclassloa...@a39137, exception:
java.lang.ClassNotFoundException: java.util.descriptors.DateDescriptor
DEBUG [main] (XMLClassDescriptorResolverImpl.java:626) - Called
addAllDescriptors with null or empty descriptor map
DEBUG [main] (XMLClassDescriptorResolverImpl.java:546) - Get descriptor for:
java.util.Date found: null
DEBUG [main] (AbstractResolverClassCommand.java:50) - Now in method:
org.exolab.castor.xml.util.resolvers.ByIntrospection resolving:
java.util.Date
DEBUG [main] (ByIntrospection.java:93) - Found descriptor:
org.exolab.castor.xml.descriptors.dateclassdescrip...@1f06dc3; descriptor
for class: Date; xml name: date
org.exolab.castor.xml.MarshalException: Bad DateTime format: 1982-03-05
DateTime is not long enough{File: [not available]; line: 2; column: 402}
at
org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException(Unmarshaller.java:794)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:760)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:626)
DEBUG [main] (XMLClassDescriptorResolverImpl.java:507) - Adding descriptor
class for: java.util.Date descriptor:
org.exolab.castor.xml.descriptors.dateclassdescrip...@1f06dc3; descriptor
for class: Date; xml name: date
DEBUG [main] (XMLClassDescriptorResolverImpl.java:546) - Get descriptor for:
java.util.Date found:
org.exolab.castor.xml.descriptors.dateclassdescrip...@1f06dc3; descriptor
for class: Date; xml name: date
DEBUG [main] (UnmarshalHandler.java:528) - #characters: 1982-03-05
DEBUG [main] (UnmarshalHandler.java:624) - #endElement: dob
at
com.manh.doms.app.common.xmljava.Converter.readObject(Converter.java:28)
at com.manh.MainTest.main(MainTest.java:37)
Caused by: java.lang.IllegalStateException: Bad DateTime format: 1982-03-05
DateTime is not long enough
at
org.exolab.castor.xml.handlers.DateFieldHandler.setValue(DateFieldHandler.java:173)
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:1070)
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:1161)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1241)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:748)
... 3 more
Caused by: java.lang.IllegalStateException: Bad DateTime format: 1982-03-05
DateTime is not long enough
at
org.exolab.castor.xml.handlers.DateFieldHandler.setValue(DateFieldHandler.java:173)
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:1070)
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:1161)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1241)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:748)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:626)
at
com.manh.doms.app.common.xmljava.Converter.readObject(Converter.java:28)
at com.manh.MainTest.main(MainTest.java:37)
Caused by: java.lang.IllegalStateException: Bad DateTime format: 1982-03-05
DateTime is not long enough
----------------------------------------------------------------------------------
I am using the same "mapping.xml" and hence the XMLContext to create
Marshaller and UnMarshaller.
While Unmarshalling the XML to Object, Caster is not using the handler ..
this is a bug.
I am using below jars in my classpath:
castor-1.3rc1-xml.jar
castor-1.3rc1-core.jar
Can you please advice.
Thanks,
Karephul
--
View this message in context:
http://www.nabble.com/Unmarshalling-using-%22GeneralizedFieldHandler%22-tp21840240p21840240.html
Sent from the Castor - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email