Seam + EJB3 in WAS 6.1 example works fine for me.
EXCEPT:
When a session is time out while a stateful bean is in action (e.g. if I search 
for the Hotels and leave the result list open for about 10 minutes without 
doing anything else), there will be an exception:


  | [15/02/08 12:20:33:984 EST] 0000001f Helpers       W   NMSV0605W: A 
javax.naming.Reference object looked up from the context "java:" with the name 
"comp/EJBContext" was sent to the JNDI Naming Manager and an exception 
resulted. Reference data follows:
  | Reference Factory Class Name: 
com.ibm.ws.ejbcontainer.injection.factory.EJBContextObjectFactory
  | Reference Factory Class Location URLs: <null>
  | Reference Class Name: javx.ejb.EJBContext
  | 
  | Exception data follows:
  | com.ibm.wsspi.injectionengine.InjectionException: EJBContext may only be 
looked up by or injected into an EJB
  |     at 
com.ibm.ws.ejbcontainer.injection.factory.EJBContextObjectFactory.getObjectInstance(EJBContextObjectFactory.java:84)
  |     at 
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:316)
  |     at 
com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:917)
  |     at 
com.ibm.ws.naming.urlbase.UrlContextHelper.processBoundObjectForLookup(UrlContextHelper.java:191)
  |     at 
com.ibm.ws.naming.java.javaURLContextRoot.processBoundObjectForLookup(javaURLContextRoot.java:407)
  |     at 
com.ibm.ws.naming.urlbase.UrlContextImpl.lookup(UrlContextImpl.java:1280)
  |     at 
com.ibm.ws.naming.java.javaURLContextImpl.lookup(javaURLContextImpl.java:384)
  |     at 
com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:204)
  |     at 
com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:144)
  |     at javax.naming.InitialContext.lookup(InitialContext.java:363)
  |     at org.jboss.seam.util.EJB.getEJBContext(EJB.java:115)
  |     at 
org.jboss.seam.transaction.Transaction.createCMTTransaction(Transaction.java:66)
  |     at 
org.jboss.seam.transaction.Transaction.getTransaction(Transaction.java:50)
  |     at sun.reflect.GeneratedMethodAccessor751.invoke(Unknown Source)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  |     at java.lang.reflect.Method.invoke(Method.java:618)
  |     at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
  |     at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
  |     at org.jboss.seam.Component.callComponentMethod(Component.java:2082)
  |     at org.jboss.seam.Component.unwrap(Component.java:2108)
  |     at org.jboss.seam.Component.getInstance(Component.java:1887)
  |     at org.jboss.seam.Component.getInstance(Component.java:1852)
  |     at org.jboss.seam.Component.getInstance(Component.java:1829)
  |     at org.jboss.seam.Component.getInstance(Component.java:1824)
  |     at org.jboss.seam.transaction.Transaction.instance(Transaction.java:36)
  |     at 
org.jboss.seam.contexts.Contexts.flushAndDestroyContexts(Contexts.java:331)
  |     at org.jboss.seam.contexts.Lifecycle.endCall(Lifecycle.java:96)
  |     at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:122)
  |     at 
org.jboss.seam.intercept.RootInterceptor.invokeAndHandle(RootInterceptor.java:84)
  |     at 
org.jboss.seam.intercept.SessionBeanInterceptor.prePassivate(SessionBeanInterceptor.java:56)
  |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  |     at java.lang.reflect.Method.invoke(Method.java:618)
  |     at 
com.ibm.ejs.container.interceptors.InterceptorProxy.invokeInterceptor(InterceptorProxy.java:227)
  |     at 
com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(InvocationContextImpl.java:526)
  |     at 
com.ibm.ejs.container.interceptors.InvocationContextImpl.doLifeCycle(InvocationContextImpl.java:231)
  |     at 
com.ibm.ejs.container.StatefulBeanO.passivate(StatefulBeanO.java:1083)
  |     at 
com.ibm.ejs.container.StatefulBeanO.uninstall(StatefulBeanO.java:1485)
  |     at 
com.ibm.ejs.container.activator.StatefulSessionActivationStrategy.atTimeout(StatefulSessionActivationStrategy.java:611)
  |     at 
com.ibm.ejs.container.activator.Activator.timeoutBean(Activator.java:851)
  |     at 
com.ibm.ejs.container.StatefulBeanReaper.deleteBean(StatefulBeanReaper.java:468)
  |     at 
com.ibm.ejs.container.StatefulBeanReaper.sweep(StatefulBeanReaper.java:295)
  |     at 
com.ibm.ejs.container.StatefulBeanReaper.alarm(StatefulBeanReaper.java:252)
  |     at com.ibm.ejs.util.am._Alarm.run(_Alarm.java:90)
  |     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
  | 
  | [15/02/08 12:20:33:984 EST] 0000001f Helpers       W   NMSV0610I: A 
NamingException is being thrown from a javax.naming.Context implementation. 
Details follow:
  | Context implementation: com.ibm.ws.naming.java.javaURLContextRoot
  | Context method: lookup(Name)
  | Context name: java:
  | Target name: comp/EJBContext
  | Other data: ""
  | Exception stack trace: 
com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred 
while the JNDI NamingManager was processing a javax.naming.Reference object. 
[Root exception is com.ibm.wsspi.injectionengine.InjectionException: EJBContext 
may only be looked up by or injected into an EJB]
  |     at 
com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:1021)
  |     at 
com.ibm.ws.naming.urlbase.UrlContextHelper.processBoundObjectForLookup(UrlContextHelper.java:191)
  |     at 
com.ibm.ws.naming.java.javaURLContextRoot.processBoundObjectForLookup(javaURLContextRoot.java:407)
  |     at 
com.ibm.ws.naming.urlbase.UrlContextImpl.lookup(UrlContextImpl.java:1280)
  |     at 
com.ibm.ws.naming.java.javaURLContextImpl.lookup(javaURLContextImpl.java:384)
  |     at 
com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:204)
  |     at 
com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:144)
  |     at javax.naming.InitialContext.lookup(InitialContext.java:363)
  |     at org.jboss.seam.util.EJB.getEJBContext(EJB.java:115)
  |     at 
org.jboss.seam.transaction.Transaction.createCMTTransaction(Transaction.java:66)
  |     at 
org.jboss.seam.transaction.Transaction.getTransaction(Transaction.java:50)
  |     at sun.reflect.GeneratedMethodAccessor751.invoke(Unknown Source)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  |     at java.lang.reflect.Method.invoke(Method.java:618)
  |     at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
  |     at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
  |     at org.jboss.seam.Component.callComponentMethod(Component.java:2082)
  |     at org.jboss.seam.Component.unwrap(Component.java:2108)
  |     at org.jboss.seam.Component.getInstance(Component.java:1887)
  |     at org.jboss.seam.Component.getInstance(Component.java:1852)
  |     at org.jboss.seam.Component.getInstance(Component.java:1829)
  |     at org.jboss.seam.Component.getInstance(Component.java:1824)
  |     at org.jboss.seam.transaction.Transaction.instance(Transaction.java:36)
  |     at 
org.jboss.seam.contexts.Contexts.flushAndDestroyContexts(Contexts.java:331)
  |     at org.jboss.seam.contexts.Lifecycle.endCall(Lifecycle.java:96)
  |     at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:122)
  |     at 
org.jboss.seam.intercept.RootInterceptor.invokeAndHandle(RootInterceptor.java:84)
  |     at 
org.jboss.seam.intercept.SessionBeanInterceptor.prePassivate(SessionBeanInterceptor.java:56)
  |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  |     at java.lang.reflect.Method.invoke(Method.java:618)
  |     at 
com.ibm.ejs.container.interceptors.InterceptorProxy.invokeInterceptor(InterceptorProxy.java:227)
  |     at 
com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(InvocationContextImpl.java:526)
  |     at 
com.ibm.ejs.container.interceptors.InvocationContextImpl.doLifeCycle(InvocationContextImpl.java:231)
  |     at 
com.ibm.ejs.container.StatefulBeanO.passivate(StatefulBeanO.java:1083)
  |     at 
com.ibm.ejs.container.StatefulBeanO.uninstall(StatefulBeanO.java:1485)
  |     at 
com.ibm.ejs.container.activator.StatefulSessionActivationStrategy.atTimeout(StatefulSessionActivationStrategy.java:611)
  |     at 
com.ibm.ejs.container.activator.Activator.timeoutBean(Activator.java:851)
  |     at 
com.ibm.ejs.container.StatefulBeanReaper.deleteBean(StatefulBeanReaper.java:468)
  |     at 
com.ibm.ejs.container.StatefulBeanReaper.sweep(StatefulBeanReaper.java:295)
  |     at 
com.ibm.ejs.container.StatefulBeanReaper.alarm(StatefulBeanReaper.java:252)
  |     at com.ibm.ejs.util.am._Alarm.run(_Alarm.java:90)
  |     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
  | Caused by: com.ibm.wsspi.injectionengine.InjectionException: EJBContext may 
only be looked up by or injected into an EJB
  |     at 
com.ibm.ws.ejbcontainer.injection.factory.EJBContextObjectFactory.getObjectInstance(EJBContextObjectFactory.java:84)
  |     at 
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:316)
  |     at 
com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:917)
  |     ... 43 more
  | 
  | 


I am using OpenJPA provider shipped with WAS. Also declared inside 
components.xml the transaction:
<transaction:ejb-transaction/>

Does anyone have some ideas about this?

Thanks


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

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

Reply via email to