It looks like you are putting the Injector (or at least one of the anonymous inner classes it creates) in the session at some point. Tomcat serializes the sessions out to disk during restart by default and since you have the Injector in the session it fails, since that object is not serializable.
Audit your code and look for 'session.setAttribute' -bp On Oct 5, 2012, at 8:20 AM, Arthur Gregório <[email protected]> wrote: > Anyone can help with this? > > =D > > Em segunda-feira, 24 de setembro de 2012 09h48min51s UTC-3, Arthur Gregório > escreveu: > I am developing an application using JSF and Guice to inject the DAO's within > the services used by the managed bean .. however from time to time my tomcat > shows the below error in the server log, saying that the implementation of > the injector is not serializable ... > > Set 24, 2012 9:41:04 AM org.apache.catalina.session.StandardSession > writeObject > Advertência: Cannot serialize session attribute adminBean for session > A84058FE8346B64799CD45C8CDBC8376 > java.io.NotSerializableException: com.google.inject.internal.InjectorImpl$4 > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) > at > org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1671) > at > org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1077) > at > org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:432) > at > org.apache.catalina.session.StandardManager.unload(StandardManager.java:353) > at > org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:518) > at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) > at > org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5462) > at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) > at > org.apache.catalina.core.StandardContext.reload(StandardContext.java:3901) > at > org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:949) > at > org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:360) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) > at > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > > i'm missing something during guice setup?! > > the setup in a contextListener > > private void startGuice(ServletContext context) { > > Injector injector = Guice.createInjector( > new JpaPersistModule("ConecteseWebPU")); > > injector.getInstance(JPAServiceInitializer.class); > > context.setAttribute(Injector.class.getName(), injector); > > LOG.info("Guice is ready!"); > } > > now I keep it in context, and when i need to retrieve it, not have to create > another injector ... > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-guice/-/FgXO0M3-_eMJ. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
