Hi. I'm not having any luck getting Castor 0.9.3.9 to unmarshall a String[] that is has previously marshalled. I always get the following exception:
>>>--- Begin Exception ---<<<
java.lang.IllegalArgumentException: Type conversion error: could not set
value of values(java.lang.String) with value of type java.lang.String
at
org.exolab.castor.mapping.loader.FieldHandlerImpl.setValue(FieldHandlerImpl.j
ava:460)
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:478)
at
org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1392)
at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.
java:1436)
at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XML
DocumentScanner.java:1205)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.j
ava:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:338)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:270)
at marunmart.<init>(marunmart.java:39)
at marunmart.main(marunmart.java:50)
>>>---- End Exception ----<<<
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:508)
at
org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1392)
at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.
java:1436)
at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XML
DocumentScanner.java:1205)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.j
ava:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:338)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:270)
at marunmart.<init>(marunmart.java:39)
at marunmart.main(marunmart.java:50)
Exception in thread "main"
I've attached a simple test case. Am I doing something wrong? It seems to
work if I switch to using a Vector instead.
Regards,
matt.
---
We must be the change we wish to see - M. K. Gandhi
BEGIN:VCARD VERSION:2.1 N:Mower;Matt FN:Matt Mower ORG:Hipbone, Inc;Sales TITLE:Systems Engineer TEL;WORK;VOICE:+44 (1932) 895902 TEL;CELL;VOICE:+44 (7977) 076709 ADR;WORK:;;3000 Hillswood Drive;Chertsey;Surry;KT16 0RS;United Kingdom LABEL;WORK;ENCODING=QUOTED-PRINTABLE:3000 Hillswood Drive=0D=0AChertsey, Surry KT16 0RS=0D=0AUnited Kingdom EMAIL;PREF;INTERNET:[EMAIL PROTECTED] EMAIL;INTERNET:[EMAIL PROTECTED] REV:20010723T144203Z END:VCARD
elem.java
Description: elem.java
marunmart.java
Description: marunmart.java
<?xml version="1.0"?> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Object Mapping DTD Version 1.0//EN" "http://castor.exolab.org/mapping.dtd"> <mapping> <class name="elem"> <map-to xml="elem"/> <field name="values" type="strings" direct="true"> <bind-xml name="values" node="element"/> </field> </class> </mapping>
C:\jb\jdk1.3\bin\javaw -classpath "C:\Documents and
Settings\mmower\jbproject\untitled2\classes;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\castor-0.9.3-xml.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\ant1_3.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\ant1_3_optional.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\jakarta-regexp-1.1.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\jdbc-se2.0.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\jndi_1.2.1.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\jta1.0.1.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\jtf-0.1.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\junit_3.5.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\ldapjdk_4.1.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\postgresql_7.1beta.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\servlet.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\xerces-J_1.4.0.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\XMLDiff_0.2.jar;C:\Documents and
Settings\mmower\jbproject\castor-0.9.3\lib\xslp_1.1d.jar;C:\jb\jdk1.3\demo\jfc\Java2D\Java2Demo.jar;C:\jb\jdk1.3\jre\lib\i18n.jar;C:\jb\jdk1.3\jre\lib\jaws.jar;C:\jb\jdk1.3\jre\lib\rt.jar;C:\jb\jdk1.3\jre\lib\sunrsasign.jar;C:\jb\jdk1.3\lib\dt.jar;C:\jb\jdk1.3\lib\tools.jar"
marunmart
<?xml version="1.0"?>
<elem><string>a</string><string>b</string><string>c</string></elem>
org.xml.sax.SAXException: unable to add 'string' to <elem> due to the following
exception:
>>>--- Begin Exception ---<<<
java.lang.IllegalArgumentException: Type conversion error: could not set value of
values(java.lang.String) with value of type java.lang.String
at
org.exolab.castor.mapping.loader.FieldHandlerImpl.setValue(FieldHandlerImpl.java:460)
at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:478)
at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1392)
at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1436)
at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1205)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:338)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:270)
at marunmart.<init>(marunmart.java:39)
at marunmart.main(marunmart.java:50)
>>>---- End Exception ----<<<
at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:508)
at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1392)
at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1436)
at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1205)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:338)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:270)
at marunmart.<init>(marunmart.java:39)
at marunmart.main(marunmart.java:50)
Exception in thread "main"
