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 > >