This content has been marked as final.
Show 5 replies
-
1. Re: Injection SessionContext to interceptor
jaikiran Jul 30, 2009 2:51 AM (in response to mireksz)Which version of JBossAS? And is that the entire exception stacktrace? If not, please post the entire exception stacktrace. Also post the relevant code and configuration files.
-
2. Re: Injection SessionContext to interceptor
mireksz Jul 30, 2009 3:00 AM (in response to mireksz)JBOSS 5.0.0 GA
full stack trace08:59:55,451 ERROR [FieldBeanProperty] failed to set value org.jboss.ejb3.stateful.StatefulSessionContextImpl@11e9be0{containerGuid=jboss.j2ee:jar=TestEJB.jar,name=SimpleEjbImpl,service=EJB3,VMID=0c98273ef3885574:5c4a7667:122ca74914f:-7fa4,id=5c4o201w-23hi0e-fxr4xidy-1-fxr4yjlm-9r} on field javax.ejb.SessionContext test.InterceptorTest.sessionContext java.lang.IllegalArgumentException: Can not set javax.ejb.SessionContext field test.InterceptorTest.sessionContext to test.SimpleEjbImpl 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 org.jboss.injection.lang.reflect.FieldBeanProperty.set(FieldBeanProperty.java:74) at org.jboss.injection.EJBContextPropertyInjector.inject(EJBContextPropertyInjector.java:50) at org.jboss.injection.EJBContextPropertyInjector.inject(EJBContextPropertyInjector.java:45) at org.jboss.ejb3.injection.InjectionInvocation.invokeTarget(InjectionInvocation.java:89) at org.jboss.ejb3.injection.InjectionInvocation.invokeNext(InjectionInvocation.java:83) at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) at org.jboss.ejb3.injection.InjectionInvocation.invokeNext(InjectionInvocation.java:74) at org.jboss.ejb3.EJBContainer.injectBeanContext(EJBContainer.java:1076) at org.jboss.ejb3.stateful.StatefulContainer.create(StatefulContainer.java:136) at org.jboss.ejb3.cache.simple.SimpleStatefulCache.create(SimpleStatefulCache.java:402) at org.jboss.ejb3.stateful.StatefulContainer.createSession(StatefulContainer.java:489) at org.jboss.ejb3.session.SessionContainer.createSession(SessionContainer.java:637) at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.getNewSessionId(StatefulSessionProxyFactoryBase.java:296) at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.createProxyBusiness(StatefulSessionProxyFactoryBase.java:160) 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:597) at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:121) at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908) at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:522) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230) 08:59:55,451 ERROR [STDERR] java.lang.IllegalArgumentException: failed to set value org.jboss.ejb3.stateful.StatefulSessionContextImpl@11e9be0{containerGuid=jboss.j2ee:jar=TestEJB.jar,name=SimpleEjbImpl,service=EJB3,VMID=0c98273ef3885574:5c4a7667:122ca74914f:-7fa4,id=5c4o201w-23hi0e-fxr4xidy-1-fxr4yjlm-9r} on field javax.ejb.SessionContext test.InterceptorTest.sessionContext 08:59:55,451 ERROR [STDERR] at org.jboss.injection.lang.reflect.FieldBeanProperty.set(FieldBeanProperty.java:99) 08:59:55,451 ERROR [STDERR] at org.jboss.injection.EJBContextPropertyInjector.inject(EJBContextPropertyInjector.java:50) 08:59:55,452 ERROR [STDERR] at org.jboss.injection.EJBContextPropertyInjector.inject(EJBContextPropertyInjector.java:45) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.injection.InjectionInvocation.invokeTarget(InjectionInvocation.java:89) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.injection.InjectionInvocation.invokeNext(InjectionInvocation.java:83) 08:59:55,452 ERROR [STDERR] at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.injection.InjectionInvocation.invokeNext(InjectionInvocation.java:74) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.EJBContainer.injectBeanContext(EJBContainer.java:1076) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.stateful.StatefulContainer.create(StatefulContainer.java:136) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.cache.simple.SimpleStatefulCache.create(SimpleStatefulCache.java:402) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.stateful.StatefulContainer.createSession(StatefulContainer.java:489) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.session.SessionContainer.createSession(SessionContainer.java:637) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.getNewSessionId(StatefulSessionProxyFactoryBase.java:296) 08:59:55,452 ERROR [STDERR] at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.createProxyBusiness(StatefulSessionProxyFactoryBase.java:160) 08:59:55,452 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 08:59:55,452 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 08:59:55,452 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 08:59:55,452 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597) 08:59:55,452 ERROR [STDERR] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:121) 08:59:55,452 ERROR [STDERR] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 08:59:55,452 ERROR [STDERR] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908) 08:59:55,452 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742) 08:59:55,453 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695) 08:59:55,453 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:522) 08:59:55,453 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230) 08:59:55,453 ERROR [StatefulSessionProxyFactoryBase] Could not obtain new Session ID from SFSB Container javax.ejb.EJBException: java.lang.IllegalArgumentException: failed to set value org.jboss.ejb3.stateful.StatefulSessionContextImpl@11e9be0{containerGuid=jboss.j2ee:jar=TestEJB.jar,name=SimpleEjbImpl,service=EJB3,VMID=0c98273ef3885574:5c4a7667:122ca74914f:-7fa4,id=5c4o201w-23hi0e-fxr4xidy-1-fxr4yjlm-9r} on field javax.ejb.SessionContext test.InterceptorTest.sessionContext at org.jboss.ejb3.cache.simple.SimpleStatefulCache.create(SimpleStatefulCache.java:423) at org.jboss.ejb3.stateful.StatefulContainer.createSession(StatefulContainer.java:489) at org.jboss.ejb3.session.SessionContainer.createSession(SessionContainer.java:637) at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.getNewSessionId(StatefulSessionProxyFactoryBase.java:296) at org.jboss.ejb3.proxy.factory.session.stateful.StatefulSessionProxyFactoryBase.createProxyBusiness(StatefulSessionProxyFactoryBase.java:160) 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:597) at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:121) at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908) at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:522) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230) Caused by: java.lang.IllegalArgumentException: failed to set value org.jboss.ejb3.stateful.StatefulSessionContextImpl@11e9be0{containerGuid=jboss.j2ee:jar=TestEJB.jar,name=SimpleEjbImpl,service=EJB3,VMID=0c98273ef3885574:5c4a7667:122ca74914f:-7fa4,id=5c4o201w-23hi0e-fxr4xidy-1-fxr4yjlm-9r} on field javax.ejb.SessionContext test.InterceptorTest.sessionContext at org.jboss.injection.lang.reflect.FieldBeanProperty.set(FieldBeanProperty.java:99) at org.jboss.injection.EJBContextPropertyInjector.inject(EJBContextPropertyInjector.java:50) at org.jboss.injection.EJBContextPropertyInjector.inject(EJBContextPropertyInjector.java:45) at org.jboss.ejb3.injection.InjectionInvocation.invokeTarget(InjectionInvocation.java:89) at org.jboss.ejb3.injection.InjectionInvocation.invokeNext(InjectionInvocation.java:83) at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) at org.jboss.ejb3.injection.InjectionInvocation.invokeNext(InjectionInvocation.java:74) at org.jboss.ejb3.EJBContainer.injectBeanContext(EJBContainer.java:1076) at org.jboss.ejb3.stateful.StatefulContainer.create(StatefulContainer.java:136) at org.jboss.ejb3.cache.simple.SimpleStatefulCache.create(SimpleStatefulCache.java:402) ... 15 more
-
3. Re: Injection SessionContext to interceptor
mireksz Jul 30, 2009 3:03 AM (in response to mireksz)IntercetorTest class
public class InterceptorTest { SessionContext sessionContext; public Object execute(InvocationContext invocation) throws Exception { System.out.println(invocation.getTarget()); Context context = new InitialContext(); return invocation.proceed(); } }
and fragments of ejb-jar.xml<interceptor> <interceptor-class>test.InterceptorTest</interceptor-class> <around-invoke> <method-name>execute</method-name> </around-invoke> <resource-env-ref> <resource-env-ref-name>SessionContext</resource-env-ref-name> <resource-env-ref-type>javax.ejb.SessionContext</resource-env-ref-type> <injection-target> <injection-target-class>test.InterceptorTest</injection-target-class> <injection-target-name>sessionContext</injection-target-name> </injection-target> </resource-env-ref> </interceptor>
This error occurs when I invoke method of session bean which is connected with this interceptor -
4. Re: Injection SessionContext to interceptor
jaikiran Jul 30, 2009 4:02 AM (in response to mireksz)Looks like a bug. Please create a JIRA at https://jira.jboss.org/jira/browse/EJBTHREE and point to this thread.
-
5. Re: Injection SessionContext to interceptor
mireksz Jul 30, 2009 4:19 AM (in response to mireksz)