I have implemented a session bean to keep parameter values that will be used by 
the entire application.This is the simplest form of my session bean:


  | @Stateful
  | @Name("cart")
  | @Scope(SESSION)
  | public class Brtest implements BrtestI,Serializable{
  |     
  |      static final long serialVersionUID = 8722576722482084467L;
  |     
  |     @PersistenceContext(type=PersistenceContextType.EXTENDED)
  |     EntityManager em;
  |     
  |     public String getCart() {
  |         return "hello";
  |     }
  | 
  |     @Destroy
  |     @Remove
  |     public void destroy() {}
  | 
  | }
  | 

I have to inject an instance of the previous session bean in one of my backing 
beam following the dvd store example of the seam examples and this is my code:


  | @Stateful
  | @Name("testSession")
  | public class TestSessionManager extends TestSessionManager implements 
serialisable{
  | 
  |     @In(create=true) Brtest cart;
  | 
  |     @PersistenceContext(type=PersistenceContextType.EXTENDED)
  |     private EntityManager em;
  | 
  |     static final long serialVersionUID = -6536629890251170098L;
  | 
  |     @In 
  |     protected FacesContext facesContext;    
  | 
  |     protected void getValueFromSession(){
  |             cart.getCart();
  |     }
  |     
  | 

The exception thrown is this:
anonymous wrote : 
  | 
  | Caused by: javax.ejb.EJBTransactionRolledbackException: 
java.lang.IllegalArgumentException: could not set field value: testSession.cart
  |     at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93)
  |     at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
  |     at 
org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
  |     at 
org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
  |     at 
org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
  |     at $Proxy341.getUsername(Unknown Source)
  |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |     at java.lang.reflect.Method.invoke(Method.java:585)
  |     at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)
  |     at 
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
  |     at 
org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72)
  |     at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
  |     at 
org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40)
  |     at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  |     at 
org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31)
  |     at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  |     at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
  |     at 
org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
  |     at 
org.javassist.tmp.java.lang.Object_$$_javassist_290.getUsername(Object_$$_javassist_290.java)
  |     ... 73 more
  | Caused by: java.lang.IllegalArgumentException: could not set field value: 
testSession.cart
  |     at org.jboss.seam.Component.setFieldValue(Component.java:1559)
  |     at org.jboss.seam.Component.access$500(Component.java:135)
  |     at org.jboss.seam.Component$BijectedField.set(Component.java:2285)
  |     at org.jboss.seam.Component.injectAttributes(Component.java:1368)
  |     at org.jboss.seam.Component.inject(Component.java:1195)
  |     at 
org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
  |     at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  |     at 
org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
  |     at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  |     at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
  |     at 
org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53)
  |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |     at java.lang.reflect.Method.invoke(Method.java:585)
  |     at 
org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
  |     at 
org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:71)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at 
org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |     at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
  |     ... 104 more
  | Caused by: java.lang.IllegalArgumentException: Could not set field value by 
reflection: TestSessionManager.cart on: twp.session.TestSessionManager  with 
value: class org.javassist.tmp.java.lang.Object_$$_javassist_291
  |     at org.jboss.seam.util.Reflections.set(Reflections.java:77)
  |     at org.jboss.seam.Component.setFieldValue(Component.java:1555)
  |     ... 128 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:63)
  |     ... 129 more
  | 
  | 

Does anyone know what may cause this exception? Is there any additional 
configuration to be made (such as property files) in order a backing bean to 
communicate with the session bean? 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4109820#4109820

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4109820
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to