Arash Bijanzadeh [http://community.jboss.org/people/armita] created the 
discussion

"Class loader issue in javassist"

To view the discussion, visit: http://community.jboss.org/message/619450#619450

--------------------------------------------------------------
I am trying to get a hold on javassist for one of our companies projects. I 
wrote this simple class for testing 




public class Main {
    public void test(){
        ClassPool cp = ClassPool.getDefault();


        CtClass entity = cp.makeClass("Entity");
        try {
            entity.addField(CtField.make(" public Integer id;",entity));
            entity.addField(CtField.make(" public String name;", entity));
            entity.addMethod(CtNewMethod.make("public void say() { 
System.out.println(12222);}",entity));
            Class EntityClass = entity.toClass();
            entity.writeFile("/tmp");
            Object e=  EntityClass.newInstance();
            Field name = EntityClass.getField("name");
            name.set("Ooldooz", e);
            System.out.println(name.get(e));
        } catch (CannotCompileException e) {
            e.printStackTrace();  //To change body of catch statement use File 
| Settings | File Templates.
        } catch (InstantiationException e) {
            e.printStackTrace();  //To change body of catch statement use File 
| Settings | File Templates.
        } catch (IllegalAccessException e) {
            e.printStackTrace();  //To change body of catch statement use File 
| Settings | File Templates.
        } catch (NoSuchFieldException e) {
            e.printStackTrace();  //To change body of catch statement use File 
| Settings | File Templates.
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File 
| Settings | File Templates.
        }
    }
    public static void main(String[] args){
        Main main = new Main();
        main.test();
    }
}

Trying to run, I get this error:

> 
> Exception in thread "main" java.lang.IllegalArgumentException: Can not set 
> java.lang.String field Entity.name to java.lang.String
>           at 
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
>           at 
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
>           at 
> sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37)
>           at 
> sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:57)
>           at java.lang.reflect.Field.set(Field.java:657)
>           at Main.test(Main.java:26)
> 



Can anybody help me out please?
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/619450#619450]

Start a new discussion in Javassist at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2062]

_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to