i have problem also with Liferay portlet dev with S2, esp if we use Spring
that have their own datasource to database/hibernate




On Wed, Nov 17, 2010 at 9:38 PM, Li Ying <liying.cn.2...@gmail.com> wrote:

> I think you can fix this problem by making your class serializable.
>
> And it is not strange if this happens in WebLogic but not in Tomcat.
>
> According to the Exception Stack, I guess the cause of this Exception is:
> (1)You putted some object into the session.
> (2)You are trying to retrieve it from the session lately.
> (3)weblogic.servlet.internal.session.SessionData.getAttribute is
> called, and it calls:
> (4)weblogic.common.internal.PassivationUtils.copy method,
> and it calls:
> (5)weblogic.common.internal.PassivationUtils.toByteArray,
> and it calls:
> (6)java.io.ObjectOutputStream.writeObject method.
> It try to write your object into a stream, but your object is not
> serializable. So the exception is thrown.
>
>
> This looks like happening under the implement code of Session
> management of WebLogic.
> Tomcat don't thrown this Exception, maybe because when it get object
> from the session, it don't try to make a copy.
>
>
> But, In my  opinion, putting an unserializable object into the session
> could cause a potential problem, because sometimes the session data
> need to be dumped into hard disk file, or to be transferred between
> app servers. If your object is not Serializable, these operation will
> fail.
>
>
> 2010/11/17 Struts Newbie <stefaan.som...@gmail.com>:
> >
> > We have a portlet running within the Liferay-container on WebLogic, that
> is
> > giving the stacktrace hereunder :
> > The strange thing is the fact that this application is working without
> any
> > problem within the Tomcat-container.
> >
> > StackTrace :
> > java.io.NotSerializableException:
> > org.apache.struts2.portlet.PortletRequestMap
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> > at
> >
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> > at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> > at
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> > at java.util.ArrayList.writeObject(ArrayList.java:570)
> > at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> > at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> > at
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> > at
> >
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> > at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> > at
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> > at
> >
> weblogic.common.internal.PassivationUtils.toByteArray(PassivationUtils.java:33)
> > at
> >
> weblogic.common.internal.PassivationUtils.toByteArray(PassivationUtils.java:24)
> > at
> weblogic.common.internal.PassivationUtils.copy(PassivationUtils.java:64)
> > at
> >
> weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:89)
> > at
> >
> weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:39)
> > at
> >
> weblogic.servlet.internal.session.SessionData.getAttribute(SessionData.java:805)
> > at
> >
> com.liferay.util.servlet.SharedSessionWrapper.getAttribute(SharedSessionWrapper.java:67)
> > at
> >
> com.liferay.portlet.PortletSessionImpl.getAttribute(PortletSessionImpl.java:110)
> > at
> >
> com.liferay.portlet.PortletSessionImpl.getAttribute(PortletSessionImpl.java:97)
> > at
> >
> com.liferay.portlet.PortletSessionImpl.getAttributeMap(PortletSessionImpl.java:129)
> > at
> >
> com.liferay.portlet.PortletSessionImpl.getAttributeMap(PortletSessionImpl.java:118)
> > at
> >
> com.liferay.portal.servlet.taglib.portlet.DefineObjectsTagUtil.doStartTag(DefineObjectsTagUtil.java:93)
> > at sun.reflect.GeneratedMethodAccessor396.invoke(Unknown Source)
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at
> >
> com.liferay.portal.kernel.util.MethodInvoker.invoke(MethodInvoker.java:81)
> > at
> >
> com.liferay.portal.kernel.util.MethodInvoker.invoke(MethodInvoker.java:51)
> > at
> >
> com.liferay.taglib.portlet.DefineObjectsTag.doStartTag(DefineObjectsTag.java:51)
> > at
> >
> jsp_servlet._html._common._themes.__portlet._jspService(__portlet.java:771)
> > at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:499)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:429)
> > at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:163)
> > at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:99)
> > at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135)
> > at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:760)
> > at
> >
> org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:892)
> > at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462)
> > at
> >
> jsp_servlet._html._portal.__render_portlet._jspService(__render_portlet.java:1984)
> > at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:499)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:429)
> > at com.liferay.portal.util.PortalImpl.renderPortlet(PortalImpl.java:3170)
> > at com.liferay.portal.util.PortalUtil.renderPortlet(PortalUtil.java:1042)
> > at
> >
> com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:169)
> > at
> >
> com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:102)
> > at
> >
> com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:280)
> > at
> >
> com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:189)
> > at
> >
> jsp_servlet._html._portal._layout._view.__portlet._jspService(__portlet.java:837)
> > at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:499)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:429)
> > at
> >
> com.liferay.portal.action.LayoutAction.includeLayoutContent(LayoutAction.java:318)
> > at
> >
> com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:519)
> > at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:196)
> > at
> >
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
> > at
> >
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
> > at
> >
> com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:159)
> > at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
> > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> > at
> >
> com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:622)
> > at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:860)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:181)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:213)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:500)
> > at
> >
> weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:248)
> > at
> >
> com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:142)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> > at
> >
> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> > at
> >
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
> > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:50)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:141)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:213)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:232)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:459)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:262)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.sso.opensso.OpenSSOFilter.processFilter(OpenSSOFilter.java:72)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:91)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:191)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:229)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.servlet.filters.threadlocalcache.ThreadLocalCacheFilter.processFilter(ThreadLocalCacheFilter.java:51)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:112)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:185)
> > at
> >
> com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:115)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
> > at
> >
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
> > at
> >
> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
> > 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(WebAppServletContext.java:2202)
> > at
> >
> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
> > at
> >
> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
> > at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> > at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> > --
> > View this message in context:
> http://old.nabble.com/Framework-%3A-Liferay-Struts-2-on-WebLogic-%3A-java.io.NotSerializableException%3A-org.apache.struts2.portlet.PortletRequestMap-tp30238148p30238148.html
> > Sent from the Struts - Dev mailing list archive at Nabble.com.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
> > For additional commands, e-mail: dev-h...@struts.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
> For additional commands, e-mail: dev-h...@struts.apache.org
>
>

Reply via email to