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

Attachment: elem.java
Description: elem.java

Attachment: 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"

Reply via email to