[jboss-dev-forums] [EJB3 Development] - Ejb not found on http session timeout

Aliaksandr Stsiapanay do-not-reply at jboss.com
Mon Sep 24 09:40:10 EDT 2012


Aliaksandr Stsiapanay [https://community.jboss.org/people/alexdev] created the discussion

"Ejb not found on http session timeout"

To view the discussion, visit: https://community.jboss.org/message/761124#761124

--------------------------------------------------------------
Hi everybody!

I have a problem of getting ejb local reference in Http session listener in method #sessionDestroyed(HttpSessionEvent)

There is code snippet below:

+ at WebListener+
+public class SessionCleanUpListener implements HttpSessionListener {+

+    /**+
+     * @see HttpSessionListener#sessionCreated(HttpSessionEvent)+
+     */+
+    public void sessionCreated(HttpSessionEvent arg0) {+
+    }+

+    /**+
+     * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)+
+     */+
+    public void sessionDestroyed(HttpSessionEvent arg0) {+
+        ServiceLocator.getInstance().getWorkflowMessageManagerBean().removeNotPersistentItems(arg0.getSession().getId());+
+    }+

+}+

ServiceLocator is a utility class to obtain ejb reference.

+public class ServiceLocator {+

+    private final static String JNDI_NAME_WORKFLOW_MESSAGE_MANAGER_BEAN = "java:app/EDI_EJB/WorkflowMessageManagerBean";+

+    private final static ServiceLocator SERVICE_LOCATOR = new ServiceLocator();+

+    private final Context context;+

+    private ServiceLocator() {+

+        try {+
+            context = new InitialContext();+
+        } catch (NamingException e) {+
+            throw new RuntimeException(e);+
+        }+

+    }+


+    public static ServiceLocator getInstance() {+
+        return SERVICE_LOCATOR;+
+    }+



+    public WorkflowMessageManagerBeanLocal getWorkflowMessageManagerBean() {+
+        try {+
+            return (WorkflowMessageManagerBeanLocal) context.lookup(JNDI_NAME_WORKFLOW_MESSAGE_MANAGER_BEAN);+
+        } catch (NamingException e) {+
+            throw new RuntimeException(e);+
+        }       + 
+    }+

+}+

When session timeout is triggered I got following exception in jboss console:

13:39:52,179 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/edi]] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]) Session event listener threw exception: java.lang.RuntimeException: javax.naming.NameNotFoundException: java:app/EDI_EJB/WorkflowMessageManagerBean
 at com.nvcm.edi.web.factory.ServiceLocator.getWorkflowMessageManagerBean(ServiceLocator.java:82) [classes(inlove)
 at com.nvcm.edi.web.listener.SessionCleanUpListener.sessionDestroyed(SessionCleanUpListener.java:26) [classes(inlove)
 at org.apache.catalina.session.StandardSession.expire(StandardSession.java:690) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:585) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:390) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:375) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) [jbossweb-7.0.13.Final.jar(inlove)
 at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590) [jbossweb-7.0.13.Final.jar(inlove) 
 at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_05]
Caused by: javax.naming.NameNotFoundException: java:app/EDI_EJB/WorkflowMessageManagerBean
 at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:121)
 at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)
 at javax.naming.InitialContext.lookup(Unknown Source) [rt.jar:1.7.0_05]
 at com.nvcm.edi.web.factory.ServiceLocator.getWorkflowMessageManagerBean(ServiceLocator.java:80) [classes(inlove)
 ... 11 more

We use Java 1.6, jboss-as-7.1.1.Final, Ejb 3 on our project.

Please any help?
--------------------------------------------------------------

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

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20120924/c01af026/attachment.html 


More information about the jboss-dev-forums mailing list