You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Volker Augustin <vo...@perfektionismus.de> on 2005/04/17 12:41:52 UTC

Betwixt: Class cast exception when running example

Hello,

I am currently trying  toget Betwixt to work but always get a long list of 
exceptions.

java.lang.ClassCastException: java.lang.Class
	at 
org.apache.commons.betwixt.io.read.ReadContext.getCurrentElement(ReadContext.java:224)
	at 
org.apache.commons.betwixt.io.read.BeanBindAction.update(BeanBindAction.java:164)
	at 
org.apache.commons.betwixt.io.read.BeanBindAction.end(BeanBindAction.java:154)
	at 
org.apache.commons.betwixt.io.BeanRuleSet$ActionMappingRule.end(BeanRuleSet.java:316)
	at org.apache.commons.digester.Digester.endElement(Digester.java:1067)
	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.apache.commons.digester.Digester.parse(Digester.java:1610)
	at DigesterTest.extractUsingBetwixt(DigesterTest.java:50)
	at DigesterTest.main(DigesterTest.java:24)

The code is copied almost 1 to 1 from the examples, just the classes are 
different. Any ideas what's wrong? 

Kind regards,
Volker

StringReader xmlReader = new StringReader("<?xml version='1.0' ?><users><user 
uid='0' login='A'/><user uid='1' login='B'/></users>");
            
BeanReader beanReader  = new BeanReader();
beanReader.getXMLIntrospector().setAttributesForPrimitives(false);
beanReader.setMatchIDs(false);
            
beanReader.registerBeanClass("user", User.class);
beanReader.registerBeanClass("users", Users.class);
            
Users users = (Users) beanReader.parse(xmlReader);
           


Users.java:
import java.util.*;

public class Users {

    private Set users = new HashSet();
    
    public void addUser(User user) {
        users.add(user);
    }
 
    public User[] getUsers() {
        return (User[]) users.toArray(new User[0]);
    }
}



User.java:
public class User {

    private int uid;
    private String login;
    
    public User() {}
    
    public void setUid(int uid) {
        this.uid = uid;
    }

    public void setLogin(String login) {
        this.login = login;
    }
    
    public int getUid() {
        return uid;
    }
    
    public String getLogin() {
        return login;
    }
}

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: Betwixt: Class cast exception when running example

Posted by robert burrell donkin <ro...@blueyonder.co.uk>.
this sound like a problem with the 1.6 which has been fixed for a while.
please try again with a recent nightly or roll your own from HEAD.

- robert

On Sun, 2005-04-17 at 12:41 +0200, Volker Augustin wrote:
> Hello,
> 
> I am currently trying  toget Betwixt to work but always get a long list of 
> exceptions.
> 
> java.lang.ClassCastException: java.lang.Class
> 	at 
> org.apache.commons.betwixt.io.read.ReadContext.getCurrentElement(ReadContext.java:224)
> 	at 
> org.apache.commons.betwixt.io.read.BeanBindAction.update(BeanBindAction.java:164)
> 	at 
> org.apache.commons.betwixt.io.read.BeanBindAction.end(BeanBindAction.java:154)
> 	at 
> org.apache.commons.betwixt.io.BeanRuleSet$ActionMappingRule.end(BeanRuleSet.java:316)
> 	at org.apache.commons.digester.Digester.endElement(Digester.java:1067)
> 	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.apache.commons.digester.Digester.parse(Digester.java:1610)
> 	at DigesterTest.extractUsingBetwixt(DigesterTest.java:50)
> 	at DigesterTest.main(DigesterTest.java:24)
> 
> The code is copied almost 1 to 1 from the examples, just the classes are 
> different. Any ideas what's wrong? 
> 
> Kind regards,
> Volker
> 
> StringReader xmlReader = new StringReader("<?xml version='1.0' ?><users><user 
> uid='0' login='A'/><user uid='1' login='B'/></users>");
>             
> BeanReader beanReader  = new BeanReader();
> beanReader.getXMLIntrospector().setAttributesForPrimitives(false);
> beanReader.setMatchIDs(false);
>             
> beanReader.registerBeanClass("user", User.class);
> beanReader.registerBeanClass("users", Users.class);
>             
> Users users = (Users) beanReader.parse(xmlReader);
>            
> 
> 
> Users.java:
> import java.util.*;
> 
> public class Users {
> 
>     private Set users = new HashSet();
>     
>     public void addUser(User user) {
>         users.add(user);
>     }
>  
>     public User[] getUsers() {
>         return (User[]) users.toArray(new User[0]);
>     }
> }
> 
> 
> 
> User.java:
> public class User {
> 
>     private int uid;
>     private String login;
>     
>     public User() {}
>     
>     public void setUid(int uid) {
>         this.uid = uid;
>     }
> 
>     public void setLogin(String login) {
>         this.login = login;
>     }
>     
>     public int getUid() {
>         return uid;
>     }
>     
>     public String getLogin() {
>         return login;
>     }
> }
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org