AnsweredAssumed Answered

Context serialization problems on Weblogic

Question asked by gilles on May 22, 2008
Hi,
I deployed an Alfresco 2.9B application on a Weblogic 9.2 server, and everithing goes fine until I ask for load test.
During the load test we get:

java.lang.NullPointerException
   at weblogic.servlet.internal.session.SessionData.getServletContext(Unknown Source)
   at jmx.HttpSessionManaged.getContext(HttpSessionManaged.java:67)
   at jmx.HttpSessionManager.registerSessionManaged(HttpSessionManager.java:124)
   at jmx.HttpSessionManager.addSession(HttpSessionManager.java:88)
   at weblogic.servlet.internal.session.SessionData.<init>(Unknown Source)
   at weblogic.servlet.internal.session.SessionData.<init>(Unknown Source)
   at weblogic.servlet.internal.session.MemorySessionData.<init>(Unknown Source)
   at weblogic.servlet.internal.session.MemorySessionContext.getNewSession(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getNewSession(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSessionInternal(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl.getSession(Unknown Source)
   at jsp_servlet.__index._jspService(__index.java:107)
   at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
   at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(Unknown Source)
   at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(Unknown Source)
   at weblogic.servlet.internal.ServletStubImpl.execute(Unknown Source)
   at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(Unknown Source)
   at weblogic.servlet.internal.ServletStubImpl.execute(Unknown Source)
   at weblogic.servlet.internal.ServletStubImpl.execute(Unknown Source)
   at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(Unknown Source)
   at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
   at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
   at weblogic.servlet.internal.WebAppServletContext.securedExecute(Unknown Source)
   at weblogic.servlet.internal.WebAppServletContext.execute(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl.run(Unknown Source)
   at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
session added
java.lang.NullPointerException
   at weblogic.servlet.internal.session.SessionData.getServletContext(Unknown Source)
   at jmx.HttpSessionManaged.getContext(HttpSessionManaged.java:67)
   at jmx.HttpSessionManager.registerSessionManaged(HttpSessionManager.java:124)
   at jmx.HttpSessionManager.addSession(HttpSessionManager.java:88)
   at weblogic.servlet.internal.session.SessionData.<init>(Unknown Source)
   at weblogic.servlet.internal.session.SessionData.<init>(Unknown Source)
   at weblogic.servlet.internal.session.MemorySessionData.<init>(Unknown Source)
   at weblogic.servlet.internal.session.MemorySessionContext.getNewSession(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getNewSession(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSessionInternal(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl.getSession(Unknown Source)
   at jsp_servlet.__index._jspService(__index.java:107)
   at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
   at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(Unknown Source)
   at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(Unknown Source)
   at weblogic.servlet.internal.ServletStubImpl.execute(Unknown Source)
   at weblogic.servlet.internal.ServletStubImpl.execute(Unknown Source)
   at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(Unknown Source)
   at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
   at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
   at weblogic.servlet.internal.WebAppServletContext.securedExecute(Unknown Source)
   at weblogic.servlet.internal.WebAppServletContext.execute(Unknown Source)
   at weblogic.servlet.internal.ServletRequestImpl.run(Unknown Source)
   at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
session added
session added
session added
<May 14, 2008 4:48:29 PM MEST> <Error> <HTTP Session> <BEA-100028> <Could not deserialize session data.
java.io.NotSerializableException: org.alfresco.web.ui.common.component.UIListItem
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
   at java.util.ArrayList.writeObject(ArrayList.java:569)
   at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   Truncated. see log file for complete stacktrace
>
If I'm right, the UIListItem is not serializable. Then …
Why does Weblogic try to deserialize it (I assume that the first error appears when it tries to serialize the component)
I red that Weblogic needs serializable context attributes. Does it mean that there is an incompatibility between UIComponents and Weblogic?
Does anyone cope with this issue?
Thanks,
Gilles

Outcomes