Seam Spring IllegalArgumentException
mhiggins.matt.smartdestinations.com Oct 7, 2008 12:35 AMI have recently started a Seam project an integrated a legacy spring project in. Seam successfully starts the Spring container etc.. I see my bean definitions are loaded. For a simple test I wrote a an interface and iml
package com.smartdestinations.service;
public interface BeanOne {
public String sayHello();
}
package com.smartdestinations.service.impl;
import com.smartdestinations.service.BeanOne;
public class BeanOneImpl implements BeanOne {
public String sayHello(){ return "Hello"; }
}
I then defined this bean in my applicationContext
<bean id="beanToSeam"
class="com.smartdestinations.service.impl.BeanOneImpl">
<seam:component/>
</bean>
Next I wrote a simple backing bean / component.
package com.vo.pt.session;
import java.util.List;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.log.Log;
import com.smartdestinations.service.BeanOne;
import com.smartdestinations.service.impl.BeanOneImpl;
@Name("springTest")
public class SpringTest {
@Logger Log log;
@In("beanToSeam")
public BeanOne beanToSeam;
public void sayHello(){
//uids = categoryService.findAllUids();
log.info(beanToSeam.sayHello());
}
}
I get the following exception when the page action is executed.
Caused by: java.lang.IllegalArgumentException: Could not set field value by reflection: SpringTest.beanToSeam on: com.vo.pt.session.SpringTest with value: class com.smartdestinations.service.impl.BeanOneImpl_$$_javassist_16
at org.jboss.seam.util.Reflections.set(Reflections.java:79)
at org.jboss.seam.Component.setFieldValue(Component.java:1788)
... 71 more
Caused by: java.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:656)
at org.jboss.seam.util.Reflections.set(Reflections.java:64)
... 72 more
package com.smartdestinations.service;
public interface BeanOne {
public String sayHello();
}
package com.smartdestinations.service.impl;
import com.smartdestinations.service.BeanOne;
public class BeanOneImpl implements BeanOne {
public String sayHello(){ return "Hello"; }
}
I then defined this bean in my applicationContext
<bean id="beanToSeam"
class="com.smartdestinations.service.impl.BeanOneImpl">
<seam:component/>
</bean>
Next I wrote a simple backing bean / component.
package com.vo.pt.session;
import java.util.List;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.log.Log;
import com.smartdestinations.service.BeanOne;
import com.smartdestinations.service.impl.BeanOneImpl;
@Name("springTest")
public class SpringTest {
@Logger Log log;
@In("beanToSeam")
public BeanOne beanToSeam;
public void sayHello(){
//uids = categoryService.findAllUids();
log.info(beanToSeam.sayHello());
}
}
I get the following exception when the page action is executed.
Caused by: java.lang.IllegalArgumentException: Could not set field value by reflection: SpringTest.beanToSeam on: com.vo.pt.session.SpringTest with value: class com.smartdestinations.service.impl.BeanOneImpl_$$_javassist_16
at org.jboss.seam.util.Reflections.set(Reflections.java:79)
at org.jboss.seam.Component.setFieldValue(Component.java:1788)
... 71 more
Caused by: java.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:656)
at org.jboss.seam.util.Reflections.set(Reflections.java:64)
... 72 more