Non-serializable Attribute exception from Portlet if using e
tim.potter Feb 11, 2006 5:16 PMI've deployed my own JSR-168 Portlets from my own WAR file and they show up in the manager fine. I can create instances using the management portlet as well. As soon as I add one of my instances to any page in the portal, if they use expiration-cache > 0, I get the exception that follows.
I'm using the jboss-portal-2.2.0-bundled (binary) version. All standard settings ... basically unzipped and executed run.bat and deployed my WAR.
Why am I posting as the error seems obvious you may ask ...
First, these portlets are known to work fine in Liferay, Pluto, and WebLogic. I only mention this so that you don't waste your time thinking there is a problem with my portlet implements.
Second, the only attribute I use in the entire Web application (Servlets/JSP/Portlets) is one object that I put into the application context. I added a quick out-in Serialization test and that object is definitely Serializable. I do not use the portletSession, session attributes, or request attributes. My impl couldn't be more trivial. So this error really makes no sense...
Lastly, if I set <expiration-cache>0</expiration-cache> in portlet.xml, then the Portlet renders fine. So I have a work-around at this point, but I'd like to turn caching on at some point.
Can you shed some light on why I'm getting this from the cache interceptor?
14:57:54,828 ERROR [[CommandServlet]] Servlet.service() for servlet CommandServlet threw exception java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1233) at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:129) at org.jboss.portal.server.aspects.component.CacheInterceptor.invoke(CacheInterceptor.java:137) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.aspects.component.ModesInterceptor.invoke(ModesInterceptor.java:38) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.aspects.component.WindowStatesInterceptor.invoke(WindowStatesInterceptor.java:32) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.bridge.BridgeInterceptor.invoke(BridgeInterceptor.java:36) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.portlet.aspects.component.SessionPostDispatchInterceptor.invoke(SessionPostDispatchInterceptor.java:61 at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor$InvokeNextCommand.execute(ContextDispatcherInter at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.portal.server.servlet.CommandServlet.doGet(CommandServlet.java:88) at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:539) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) at org.jboss.portal.server.app.impl.AbstractRequestContext.include(AbstractRequestContext.java:234) at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor$1.include(ContextDispatcherInterceptor.java:60) at org.jboss.portal.server.servlet.CommandServlet.include(CommandServlet.java:68) at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor.invoke(ContextDispatcherInterceptor.java:66) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.portlet.aspects.component.SessionPreDispatchInterceptor.invoke(SessionPreDispatchInterceptor.java:63) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.aspects.component.ContextTrackerInterceptor.invoke(ContextTrackerInterceptor.java:36) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.portlet.aspects.component.SecureTransportInterceptor.invoke(SecureTransportInterceptor.java:56) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.portlet.aspects.component.ValveInterceptor.invoke(ValveInterceptor.java:51) at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162) at org.jboss.portal.core.command.RenderWindowCommand.execute(RenderWindowCommand.java:71) at org.jboss.portal.core.command.ControllerCommand.dispatch(ControllerCommand.java:65) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127) at org.jboss.portal.core.aspects.controller.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:72) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:156) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.controller.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:48) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.controller.NavigationInterceptor.invoke(NavigationInterceptor.java:55) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162) at org.jboss.portal.core.command.CommandContext.execute(CommandContext.java:94) at org.jboss.portal.core.command.CommandContext.chain(CommandContext.java:128) at org.jboss.portal.core.command.RenderPageCommand.renderPortlets(RenderPageCommand.java:218) at org.jboss.portal.core.command.RenderPageCommand.execute(RenderPageCommand.java:151) at org.jboss.portal.core.command.ControllerCommand.dispatch(ControllerCommand.java:65) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127) at org.jboss.portal.core.aspects.controller.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:72) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:156) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.controller.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:48) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.controller.NavigationInterceptor.invoke(NavigationInterceptor.java:45) at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162) at org.jboss.portal.core.command.CommandContext.execute(CommandContext.java:94) at org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:80) at org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:64) at org.jboss.portal.core.CoreController.handle(CoreController.java:177) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118) at org.jboss.mx.server.Invocation.invoke(Invocation.java:74) at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127) at org.jboss.mx.server.Invocation.invoke(Invocation.java:74) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644) at org.jboss.mx.util.JMXInvocationHandler.invoke(JMXInvocationHandler.java:273) at $Proxy144.handle(Unknown Source) at org.jboss.portal.server.ServerInvocation.dispatch(ServerInvocation.java:63) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127) at org.jboss.portal.core.aspects.server.SubjectAssociationInterceptor.invoke(SubjectAssociationInterceptor.java:35) at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.server.PolicyAssociationInterceptor.invoke(PolicyAssociationInterceptor.java:40) at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(ContentTypeInterceptor.java:55) at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleInterceptor.java:56) at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:171) at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:74) at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java:62) at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25) at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117) at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162) at org.jboss.portal.server.servlet.PortalServlet.doGet(PortalServlet.java:208) at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595)