-
1. Re: JNDI context problem durinh HttpSession lifecycle.
jules_gosnell Dec 6, 2001 8:31 PM (in response to alexnet)This sounds like:
Either,
The session is being destroyed because the webapp is being destroyed, and the context is tidied up before the session - is your webapp being undeployed at the time you get this error /
Or,
Somehow, in the valueUnbound() method your ContextClassLoader has been changed - could you print out Thread.currentThread().getContextClassLoader() in your valueBound() and valueUnbound() methods and let me see it.
Or,
Something else...
Any more information would be helpful.
Jules
P.S.
I am only talking JBoss3/Jetty4, as this is the integration that I am responsible for..... -
2. Re: JNDI context problem durinh HttpSession lifecycle.
alexnet Dec 6, 2001 11:54 PM (in response to alexnet)Hi Jules,
I didn't talking about undeploying application. It was just expired session.
Here is part of logfile:
valueBound() method:
[23:48:55,296,Jetty] JSP: init
[23:48:55,556,Default] Bound into session: 1g294jrp4
[23:48:55,556,Default] Is session new: true
[23:48:55,556,Default] Event name: TestSessionScopeJNDI
[23:48:55,556,Default] ClassLoader: org.mortbay.http.ContextLoader(file:/F:/tools/jboss-3.0.0alpha/deploy/Default/advisor.ear/web1001/WEB-INF/lib/advisor-client.jar;file:/F:/tools/jboss-3.0.0alpha/deploy/Default/advisor.ear/web1001/WEB-INF/
lib/jboss-client.jar;file:/F:/tools/jboss-3.0.0alpha/deploy/Default/advisor.ear/web1001/WEB-INF/lib/jbosssx-client.jar;file:/F:/tools/jboss-3.0.0alpha/deploy/Default/advisor.ear/web1001/WEB-INF/lib/jnp-client.jar;file:/F:/tools/jboss-3.0.0a
lpha/deploy/Default/advisor.ear/web1001/WEB-INF/classes/) / java.net.URLClassLoader@48ef56
[23:48:55,566,Default] +- jdbc (class: org.jnp.interfaces.NamingContext)
| +- expound (class: org.jnp.interfaces.NamingContext)
| | +- advisor (class: org.jnp.interfaces.NamingContext)
| | | +- AnalyticsDS[link -> java:/expound/advisor/AnalyticsDS] (class: j
avax.naming.LinkRef)
| | | +- AdvisorDS[link -> java:/expound/advisor/AdvisorDS] (class: javax
.naming.LinkRef)
+- ejb (class: org.jnp.interfaces.NamingContext)
| +- expound (class: org.jnp.interfaces.NamingContext)
| | +- advisor (class: org.jnp.interfaces.NamingContext)
| | | +- PSBean[link -> expound/advisor/PSBean] (class: javax.naming.Link
Ref)
+- security (class: org.jnp.interfaces.NamingContext)
| +- realmMapping (class: org.jboss.security.plugins.NullSecurityManager)
| +- securityMgr (class: org.jboss.security.plugins.NullSecurityManager)
[23:48:55,696,Jetty] WARNING: Servlet Exception for /advisor/snoop.jsp
java.util.NoSuchElementException
at java.util.AbstractList$Itr.next(Unknown Source)
at java.util.Collections$6.nextElement(Unknown Source)
at org.mortbay.jetty.servlet.ServletRequest.getLocale(ServletRequest.jav
a:162)
at _0002fsnoop_0002ejspsnoop_jsp_0._jspService(_0002fsnoop_0002ejspsnoop
_jsp_0.java:282)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspSer
vlet.java:176)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
07)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:488
)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
87)
at org.mortbay.http.HandlerContext.handle(HandlerContext.java:1040)
at org.mortbay.http.HandlerContext.handle(HandlerContext.java:995)
at org.mortbay.http.HttpServer.service(HttpServer.java:683)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:732)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:889)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:746)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:
146)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
at org.mortbay.util.ThreadPool$PoolThreadRunnable.run(ThreadPool.java:60
9)
at java.lang.Thread.run(Unknown Source)
valueUnbound() method:
[23:57:15,665,JmsXA] running gc for pool
[23:57:15,665,DefaultDS] running gc for pool
[23:57:15,665,NoTransDS] running gc for pool
[23:58:58,413,Default] Unbound from session: 1g294jrp4
[23:59:08,758,Default] Event name: TestSessionScopeJNDI
[23:59:08,758,Default] ClassLoader: java.net.URLClassLoader@48ef56
[23:59:08,768,Default] javax.naming.NameNotFoundException: env not bound
[23:59:08,768,Default] at org.jnp.server.NamingServer.getBinding(NamingServer.j
ava:495)
[23:59:08,768,Default] at org.jnp.server.NamingServer.getBinding(NamingServer.j
ava:503)
[23:59:08,768,Default] at org.jnp.server.NamingServer.getObject(NamingServer.ja
va:509)
[23:59:08,768,Default] at org.jnp.server.NamingServer.lookup(NamingServer.java:
282)
[23:59:08,768,Default] at org.jnp.interfaces.NamingContext.lookup(NamingContext
.java:365)
[23:59:08,768,Default] at org.jnp.interfaces.NamingContext.lookup(NamingContext
.java:473)
[23:59:08,768,Default] at org.jnp.interfaces.NamingContext.lookup(NamingContext
.java:349)
[23:59:08,768,Default] at javax.naming.InitialContext.lookup(Unknown Source)
[23:59:08,768,Default] at JndiPrintBean.valueUnbound(Unknown Source)
[23:59:08,768,Default] at org.mortbay.jetty.servlet.Context$Session.unbindValue
(Context.java:815)
[23:59:08,768,Default] at org.mortbay.jetty.servlet.Context$Session.invalidate(
Context.java:701)
[23:59:08,768,Default] at org.mortbay.jetty.servlet.Context.scavenge(Context.ja
va:547)
[23:59:08,768,Default] at org.mortbay.jetty.servlet.Context.access$1(Context.ja
va)
[23:59:08,768,Default] at org.mortbay.jetty.servlet.Context$SessionScavenger.ru
n(Context.java:572)
Is this enough, or I should post the code which I use to traverse JNDI ?
--Alex. -
3. Re: JNDI context problem durinh HttpSession lifecycle.
jules_gosnell Dec 10, 2001 8:32 PM (in response to alexnet)Firstly,
from the getLocale() Exception it looks like you are not running a recently refreshed RH cvs tree.
If this is the case then you should refresh and rebuild it, otherwise we may waste time on problems that have already been fixed.
Secondly, the classloader seems to be changing between the two methods. In the first one you get the correct cl and consequently are able to find you JNDI context, in the second method you get the first cl's parent and are not able to locate your context.
Confirm this on an up-to-date RH tree and I shall take a look at it.
Jules