You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Edgar Merino <do...@gmail.com> on 2008/10/15 11:01:55 UTC

GuiceInjectorHolder inside WebApplication

Hello,

    I need to hold a reference to a Guice injector inside my 
WebApplication, however since the injector is not serializable I tried 
using a GuiceInjectorHolder and keeping a reference to it in my 
WebApplication, but I'm still getting serialization exceptions when 
redeploying my application. Why didn't it work? what should I do in this 
case to keep a reference to my Guice injector? Thanks in advance.

Edgar Merino

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: GuiceInjectorHolder inside WebApplication

Posted by Edgar Merino <do...@gmail.com>.
Ok, using wicket-guice now, problem solved... I didn't want to depend on 
guice inside my wicket components, but integration is perfect, so I 
guess I'll just leave it like that, thank you Igor.

Edgar Merino



Igor Vaynberg escribió:
> right. you are not keeping a reference to the injector itself, but you are
> giving webpage a reference to a service that is not serializable...thus your
> problem.
>
> i suggest using wicket-guice, it has provisions to make serialization work
> seamlessly when you pass instances of guice services into components/pages,
> even if they are not serializable.
>
> you can read the spring page on our wiki which explains serialization
> issues. wicket-guice uses an identical way of fixing this as the spring
> integration.
>
> -igor
>
> On Wed, Oct 15, 2008 at 3:02 PM, Edgar Merino <do...@gmail.com> wrote:
>
>   
>> This is happening when using a WebPage, but I'm not using an injector
>> there... I have a class that receives a service as a parameter, that service
>> is being fetch by the guice injector and passed to the component in the
>> WebApplication:
>>
>> public class MyApp extends WebApplication {
>>   private Injector injector;
>>   ...
>>
>>   public List<Widget> getWidgets() {
>>      List<Widget> widgets = new ArrayList<Widget>();
>>          //the service needs some resources injected, so is handled by the
>> injector
>>      Service service = injector.getInstance(Service.class);
>>      widgets.add(new Widget(service));
>>
>>      ...
>>
>>      return widgets;
>>   }
>> }
>>
>> class Widget {
>>   private Service service;
>>
>>   Widget(Service service) {
>>      this.service = service;
>>   }
>>
>>   public Panel getPanel() {
>>      return SomePanel(service);
>>   }
>> }
>>
>> The above is similar to what I'm doing in my real application, below is the
>> stack trace. Any help is greatly appreciated.
>> Edgar Merino
>>
>> org.apache.wicket.WicketRuntimeException: Failed to serialize [Page class =
>> org.devpower.wicket.cms.core.page.AdminPage, id = 0, version = 0]
>>       at
>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:392)
>>       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: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.writeObject(ObjectOutputStream.java:326)
>>       at
>> org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1939)
>>       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: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.writeObject(ObjectOutputStream.java:326)
>>       at
>> org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:624)
>>       at
>> org.apache.catalina.session.StandardManager.unload(StandardManager.java:538)
>>       at
>> org.apache.catalina.session.StandardManager.stop(StandardManager.java:794)
>>       at
>> org.apache.catalina.core.StandardContext.stop(StandardContext.java:5325)
>>       at com.sun.enterprise.web.WebModule.stop(WebModule.java:357)
>>       at
>> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1102)
>>       at
>> com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2207)
>>       at
>> com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2137)
>>       at
>> com.sun.enterprise.server.WebModuleDeployEventListener.moduleUndeployed(WebModuleDeployEventListener.java:226)
>>       at
>> com.sun.enterprise.server.WebModuleDeployEventListener.moduleUndeployed(WebModuleDeployEventListener.java:313)
>>       at
>> com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:976)
>>       at
>> com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:961)
>>       at
>> com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:464)
>>       at
>> com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:176)
>>       at
>> com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
>>       at
>> com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:226)
>>       at
>> com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStopEvent(ServerDeploymentTarget.java:332)
>>       at
>> com.sun.enterprise.deployment.phasing.ApplicationStopPhase.runPhase(ApplicationStopPhase.java:136)
>>       at
>> com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
>>       at
>> com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
>>       at
>> com.sun.enterprise.deployment.phasing.PEDeploymentService.stop(PEDeploymentService.java:652)
>>       at
>> com.sun.enterprise.deployment.phasing.PEDeploymentService.stop(PEDeploymentService.java:699)
>>       at
>> com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.stop(ApplicationsConfigMBean.java:767)
>>       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:597)
>>       at
>> com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:375)
>>       at
>> com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:358)
>>       at
>> com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:464)
>>       at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
>>       at
>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
>>       at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
>>       at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>       at java.lang.reflect.Method.invoke(Method.java:597)
>>       at
>> com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
>>       at $Proxy1.invoke(Unknown Source)
>>       at
>> com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
>>       at
>> com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
>>       at
>> com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
>>       at
>> com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
>>       at
>> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
>>       at
>> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
>>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
>>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
>>       at
>> org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
>>       at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
>>       at
>> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
>>       at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
>>       at
>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
>>       at
>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
>>       at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
>>       at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
>>       at
>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
>>       at
>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
>>       at
>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
>>       at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
>>       at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
>>       at
>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
>>       at
>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
>>       at
>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
>>       at
>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
>>       at
>> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
>>       at
>> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
>>       at
>> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
>>       at
>> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
>>       at
>> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
>>       at com.sun.ente
>>
>> rprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
>>       at
>> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
>>       at
>> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
>>       at
>> com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
>> Caused by: java.io.NotSerializableException:
>> com.google.inject.InjectorImpl$9
>>       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.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.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.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.writeArray(ObjectOutputStream.java:1338)
>>       at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>>       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
>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:388)
>>       ... 95 more
>> ADM5603:Event listener error [Failed to serialize [Page class =
>> org.devpower.wicket.cms.core.page.AdminPage, id = 0, version = 0]]
>>
>>
>>
>>
>>
>> Igor Vaynberg escribió:
>>
>>  the application class is not serialized, so there should be no
>>     
>>> serializatoin
>>> problems. can you post the stack trace?
>>>
>>> -igor
>>>
>>> On Wed, Oct 15, 2008 at 12:57 PM, Edgar Merino <do...@gmail.com>
>>> wrote:
>>>
>>>
>>>
>>>       
>>>> But I only need to keep a reference to a Guice injector in my
>>>> WebApplication to use it across some methods in it, I don't need it
>>>> inside
>>>> my wicket components... I think the wicket-guice integration serves a
>>>> different purpose, correct me if I'm wrong.
>>>>
>>>> Edgar Merino
>>>>
>>>>
>>>> richardwilko escribió:
>>>>
>>>>  Have you looked at the wicket guice integration?  I think that does it
>>>>
>>>>
>>>>         
>>>>> already.
>>>>>
>>>>> Richard
>>>>>
>>>>>
>>>>>
>>>>> Edgar Merino wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> Let me correct that last response: the problem is not solved yet. I
>>>>>> thought it was but after redeploying my application again I got a
>>>>>> serialization exception, why didn't the previously supplied "solution"
>>>>>> didn't work? can anyone give me a hand on this? thanks in advance.
>>>>>>
>>>>>> Edgar Merino
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Edgar Merino escribió:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Ok I re-read the javadoc for the GuiceInjectorHolder and found out I
>>>>>>> had
>>>>>>> to use it as a MetaDataKey, so I did that in my application:
>>>>>>>
>>>>>>> public void init() {
>>>>>>>  //initialization code
>>>>>>>  Injector injector = Guice.createInjector();
>>>>>>>  setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new
>>>>>>> GuiceInjectorHolder(injector));
>>>>>>> }
>>>>>>>
>>>>>>> public void someMethod() {
>>>>>>>  Injector injector = ((GuiceInjectorHolder)
>>>>>>> getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
>>>>>>>  injector.getInstance(SomeClass.class);
>>>>>>> }
>>>>>>>
>>>>>>> I was thinking about adding a GuiceComponentInjector to my
>>>>>>> application,
>>>>>>> but I'm not using guice with wicket so I don't think I need that, any
>>>>>>> suggestion?
>>>>>>>
>>>>>>> Edgar Merino
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Edgar Merino escribió:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>>  I need to hold a reference to a Guice injector inside my
>>>>>>>> WebApplication, however since the injector is not serializable I
>>>>>>>> tried using
>>>>>>>> a GuiceInjectorHolder and keeping a reference to it in my
>>>>>>>> WebApplication,
>>>>>>>> but I'm still getting serialization exceptions when redeploying my
>>>>>>>> application. Why didn't it work? what should I do in this case to
>>>>>>>> keep a
>>>>>>>> reference to my Guice injector? Thanks in advance.
>>>>>>>>
>>>>>>>> Edgar Merino
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>>               
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> -----
>>>>> http://www.richard-wilkinson.co.uk My blog:
>>>>> http://www.richard-wilkinson.co.uk
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>         
>>>
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>>     
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: GuiceInjectorHolder inside WebApplication

Posted by Igor Vaynberg <ig...@gmail.com>.
right. you are not keeping a reference to the injector itself, but you are
giving webpage a reference to a service that is not serializable...thus your
problem.

i suggest using wicket-guice, it has provisions to make serialization work
seamlessly when you pass instances of guice services into components/pages,
even if they are not serializable.

you can read the spring page on our wiki which explains serialization
issues. wicket-guice uses an identical way of fixing this as the spring
integration.

-igor

On Wed, Oct 15, 2008 at 3:02 PM, Edgar Merino <do...@gmail.com> wrote:

> This is happening when using a WebPage, but I'm not using an injector
> there... I have a class that receives a service as a parameter, that service
> is being fetch by the guice injector and passed to the component in the
> WebApplication:
>
> public class MyApp extends WebApplication {
>   private Injector injector;
>   ...
>
>   public List<Widget> getWidgets() {
>      List<Widget> widgets = new ArrayList<Widget>();
>          //the service needs some resources injected, so is handled by the
> injector
>      Service service = injector.getInstance(Service.class);
>      widgets.add(new Widget(service));
>
>      ...
>
>      return widgets;
>   }
> }
>
> class Widget {
>   private Service service;
>
>   Widget(Service service) {
>      this.service = service;
>   }
>
>   public Panel getPanel() {
>      return SomePanel(service);
>   }
> }
>
> The above is similar to what I'm doing in my real application, below is the
> stack trace. Any help is greatly appreciated.
> Edgar Merino
>
> org.apache.wicket.WicketRuntimeException: Failed to serialize [Page class =
> org.devpower.wicket.cms.core.page.AdminPage, id = 0, version = 0]
>       at
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:392)
>       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: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.writeObject(ObjectOutputStream.java:326)
>       at
> org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1939)
>       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: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.writeObject(ObjectOutputStream.java:326)
>       at
> org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:624)
>       at
> org.apache.catalina.session.StandardManager.unload(StandardManager.java:538)
>       at
> org.apache.catalina.session.StandardManager.stop(StandardManager.java:794)
>       at
> org.apache.catalina.core.StandardContext.stop(StandardContext.java:5325)
>       at com.sun.enterprise.web.WebModule.stop(WebModule.java:357)
>       at
> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1102)
>       at
> com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2207)
>       at
> com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2137)
>       at
> com.sun.enterprise.server.WebModuleDeployEventListener.moduleUndeployed(WebModuleDeployEventListener.java:226)
>       at
> com.sun.enterprise.server.WebModuleDeployEventListener.moduleUndeployed(WebModuleDeployEventListener.java:313)
>       at
> com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:976)
>       at
> com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:961)
>       at
> com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:464)
>       at
> com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:176)
>       at
> com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
>       at
> com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:226)
>       at
> com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStopEvent(ServerDeploymentTarget.java:332)
>       at
> com.sun.enterprise.deployment.phasing.ApplicationStopPhase.runPhase(ApplicationStopPhase.java:136)
>       at
> com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
>       at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
>       at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.stop(PEDeploymentService.java:652)
>       at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.stop(PEDeploymentService.java:699)
>       at
> com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.stop(ApplicationsConfigMBean.java:767)
>       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:597)
>       at
> com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:375)
>       at
> com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:358)
>       at
> com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:464)
>       at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
>       at
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
>       at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
>       at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at
> com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
>       at $Proxy1.invoke(Unknown Source)
>       at
> com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
>       at
> com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
>       at
> com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
>       at
> com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
>       at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
>       at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
>       at
> org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
>       at
> org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
>       at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
>       at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
>       at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
>       at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
>       at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
>       at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
>       at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
>       at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
>       at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
>       at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
>       at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
>       at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
>       at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
>       at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
>       at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
>       at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
>       at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
>       at com.sun.ente
>
> rprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
>       at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
>       at
> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
>       at
> com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
> Caused by: java.io.NotSerializableException:
> com.google.inject.InjectorImpl$9
>       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.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.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.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.writeArray(ObjectOutputStream.java:1338)
>       at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>       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
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:388)
>       ... 95 more
> ADM5603:Event listener error [Failed to serialize [Page class =
> org.devpower.wicket.cms.core.page.AdminPage, id = 0, version = 0]]
>
>
>
>
>
> Igor Vaynberg escribió:
>
>  the application class is not serialized, so there should be no
>> serializatoin
>> problems. can you post the stack trace?
>>
>> -igor
>>
>> On Wed, Oct 15, 2008 at 12:57 PM, Edgar Merino <do...@gmail.com>
>> wrote:
>>
>>
>>
>>> But I only need to keep a reference to a Guice injector in my
>>> WebApplication to use it across some methods in it, I don't need it
>>> inside
>>> my wicket components... I think the wicket-guice integration serves a
>>> different purpose, correct me if I'm wrong.
>>>
>>> Edgar Merino
>>>
>>>
>>> richardwilko escribió:
>>>
>>>  Have you looked at the wicket guice integration?  I think that does it
>>>
>>>
>>>> already.
>>>>
>>>> Richard
>>>>
>>>>
>>>>
>>>> Edgar Merino wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> Let me correct that last response: the problem is not solved yet. I
>>>>> thought it was but after redeploying my application again I got a
>>>>> serialization exception, why didn't the previously supplied "solution"
>>>>> didn't work? can anyone give me a hand on this? thanks in advance.
>>>>>
>>>>> Edgar Merino
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Edgar Merino escribió:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Ok I re-read the javadoc for the GuiceInjectorHolder and found out I
>>>>>> had
>>>>>> to use it as a MetaDataKey, so I did that in my application:
>>>>>>
>>>>>> public void init() {
>>>>>>  //initialization code
>>>>>>  Injector injector = Guice.createInjector();
>>>>>>  setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new
>>>>>> GuiceInjectorHolder(injector));
>>>>>> }
>>>>>>
>>>>>> public void someMethod() {
>>>>>>  Injector injector = ((GuiceInjectorHolder)
>>>>>> getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
>>>>>>  injector.getInstance(SomeClass.class);
>>>>>> }
>>>>>>
>>>>>> I was thinking about adding a GuiceComponentInjector to my
>>>>>> application,
>>>>>> but I'm not using guice with wicket so I don't think I need that, any
>>>>>> suggestion?
>>>>>>
>>>>>> Edgar Merino
>>>>>>
>>>>>>
>>>>>>
>>>>>> Edgar Merino escribió:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>>  I need to hold a reference to a Guice injector inside my
>>>>>>> WebApplication, however since the injector is not serializable I
>>>>>>> tried using
>>>>>>> a GuiceInjectorHolder and keeping a reference to it in my
>>>>>>> WebApplication,
>>>>>>> but I'm still getting serialization exceptions when redeploying my
>>>>>>> application. Why didn't it work? what should I do in this case to
>>>>>>> keep a
>>>>>>> reference to my Guice injector? Thanks in advance.
>>>>>>>
>>>>>>> Edgar Merino
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> -----
>>>> http://www.richard-wilkinson.co.uk My blog:
>>>> http://www.richard-wilkinson.co.uk
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: GuiceInjectorHolder inside WebApplication

Posted by Edgar Merino <do...@gmail.com>.
This is happening when using a WebPage, but I'm not using an injector 
there... I have a class that receives a service as a parameter, that 
service is being fetch by the guice injector and passed to the component 
in the WebApplication:

public class MyApp extends WebApplication {
    private Injector injector;
    ...

    public List<Widget> getWidgets() {
       List<Widget> widgets = new ArrayList<Widget>();
      
       //the service needs some resources injected, so is handled by the 
injector
       Service service = injector.getInstance(Service.class);
       widgets.add(new Widget(service));

       ...

       return widgets;
    }
}

class Widget {
    private Service service;

    Widget(Service service) {
       this.service = service;
    }

    public Panel getPanel() {
       return SomePanel(service);
    }
}

The above is similar to what I'm doing in my real application, below is 
the stack trace. Any help is greatly appreciated.
Edgar Merino

org.apache.wicket.WicketRuntimeException: Failed to serialize [Page 
class = org.devpower.wicket.cms.core.page.AdminPage, id = 0, version = 0]
        at 
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:392)
        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: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.writeObject(ObjectOutputStream.java:326)
        at 
org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1939)
        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: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.writeObject(ObjectOutputStream.java:326)
        at 
org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:624)
        at 
org.apache.catalina.session.StandardManager.unload(StandardManager.java:538)
        at 
org.apache.catalina.session.StandardManager.stop(StandardManager.java:794)
        at 
org.apache.catalina.core.StandardContext.stop(StandardContext.java:5325)
        at com.sun.enterprise.web.WebModule.stop(WebModule.java:357)
        at 
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1102)
        at 
com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2207)
        at 
com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:2137)
        at 
com.sun.enterprise.server.WebModuleDeployEventListener.moduleUndeployed(WebModuleDeployEventListener.java:226)
        at 
com.sun.enterprise.server.WebModuleDeployEventListener.moduleUndeployed(WebModuleDeployEventListener.java:313)
        at 
com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:976)
        at 
com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:961)
        at 
com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:464)
        at 
com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:176)
        at 
com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
        at 
com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:226)
        at 
com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStopEvent(ServerDeploymentTarget.java:332)
        at 
com.sun.enterprise.deployment.phasing.ApplicationStopPhase.runPhase(ApplicationStopPhase.java:136)
        at 
com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
        at 
com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
        at 
com.sun.enterprise.deployment.phasing.PEDeploymentService.stop(PEDeploymentService.java:652)
        at 
com.sun.enterprise.deployment.phasing.PEDeploymentService.stop(PEDeploymentService.java:699)
        at 
com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.stop(ApplicationsConfigMBean.java:767)
        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:597)
        at 
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:375)
        at 
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:358)
        at 
com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:464)
        at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
        at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
        at $Proxy1.invoke(Unknown Source)
        at 
com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
        at 
com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
        at 
com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
        at 
com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
        at 
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
        at 
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at 
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
        at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at 
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
        at 
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at 
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at 
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at 
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
        at com.sun.ente
rprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
        at 
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
        at 
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at 
com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
Caused by: java.io.NotSerializableException: 
com.google.inject.InjectorImpl$9
        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.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.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.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.writeArray(ObjectOutputStream.java:1338)
        at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
        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 
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:388)
        ... 95 more
ADM5603:Event listener error [Failed to serialize [Page class = 
org.devpower.wicket.cms.core.page.AdminPage, id = 0, version = 0]]





Igor Vaynberg escribió:
> the application class is not serialized, so there should be no serializatoin
> problems. can you post the stack trace?
>
> -igor
>
> On Wed, Oct 15, 2008 at 12:57 PM, Edgar Merino <do...@gmail.com> wrote:
>
>   
>> But I only need to keep a reference to a Guice injector in my
>> WebApplication to use it across some methods in it, I don't need it inside
>> my wicket components... I think the wicket-guice integration serves a
>> different purpose, correct me if I'm wrong.
>>
>> Edgar Merino
>>
>>
>> richardwilko escribió:
>>
>>  Have you looked at the wicket guice integration?  I think that does it
>>     
>>> already.
>>>
>>> Richard
>>>
>>>
>>>
>>> Edgar Merino wrote:
>>>
>>>
>>>       
>>>> Let me correct that last response: the problem is not solved yet. I
>>>> thought it was but after redeploying my application again I got a
>>>> serialization exception, why didn't the previously supplied "solution"
>>>> didn't work? can anyone give me a hand on this? thanks in advance.
>>>>
>>>> Edgar Merino
>>>>
>>>>
>>>>
>>>>
>>>> Edgar Merino escribió:
>>>>
>>>>
>>>>         
>>>>> Ok I re-read the javadoc for the GuiceInjectorHolder and found out I had
>>>>> to use it as a MetaDataKey, so I did that in my application:
>>>>>
>>>>> public void init() {
>>>>>   //initialization code
>>>>>   Injector injector = Guice.createInjector();
>>>>>   setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new
>>>>> GuiceInjectorHolder(injector));
>>>>> }
>>>>>
>>>>> public void someMethod() {
>>>>>   Injector injector = ((GuiceInjectorHolder)
>>>>> getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
>>>>>   injector.getInstance(SomeClass.class);
>>>>> }
>>>>>
>>>>> I was thinking about adding a GuiceComponentInjector to my application,
>>>>> but I'm not using guice with wicket so I don't think I need that, any
>>>>> suggestion?
>>>>>
>>>>> Edgar Merino
>>>>>
>>>>>
>>>>>
>>>>> Edgar Merino escribió:
>>>>>
>>>>>
>>>>>           
>>>>>> Hello,
>>>>>>
>>>>>>   I need to hold a reference to a Guice injector inside my
>>>>>> WebApplication, however since the injector is not serializable I tried using
>>>>>> a GuiceInjectorHolder and keeping a reference to it in my WebApplication,
>>>>>> but I'm still getting serialization exceptions when redeploying my
>>>>>> application. Why didn't it work? what should I do in this case to keep a
>>>>>> reference to my Guice injector? Thanks in advance.
>>>>>>
>>>>>> Edgar Merino
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>         
>>> -----
>>> http://www.richard-wilkinson.co.uk My blog:
>>> http://www.richard-wilkinson.co.uk
>>>
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>>     
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: GuiceInjectorHolder inside WebApplication

Posted by Igor Vaynberg <ig...@gmail.com>.
the application class is not serialized, so there should be no serializatoin
problems. can you post the stack trace?

-igor

On Wed, Oct 15, 2008 at 12:57 PM, Edgar Merino <do...@gmail.com> wrote:

> But I only need to keep a reference to a Guice injector in my
> WebApplication to use it across some methods in it, I don't need it inside
> my wicket components... I think the wicket-guice integration serves a
> different purpose, correct me if I'm wrong.
>
> Edgar Merino
>
>
> richardwilko escribió:
>
>  Have you looked at the wicket guice integration?  I think that does it
>> already.
>>
>> Richard
>>
>>
>>
>> Edgar Merino wrote:
>>
>>
>>> Let me correct that last response: the problem is not solved yet. I
>>> thought it was but after redeploying my application again I got a
>>> serialization exception, why didn't the previously supplied "solution"
>>> didn't work? can anyone give me a hand on this? thanks in advance.
>>>
>>> Edgar Merino
>>>
>>>
>>>
>>>
>>> Edgar Merino escribió:
>>>
>>>
>>>> Ok I re-read the javadoc for the GuiceInjectorHolder and found out I had
>>>> to use it as a MetaDataKey, so I did that in my application:
>>>>
>>>> public void init() {
>>>>   //initialization code
>>>>   Injector injector = Guice.createInjector();
>>>>   setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new
>>>> GuiceInjectorHolder(injector));
>>>> }
>>>>
>>>> public void someMethod() {
>>>>   Injector injector = ((GuiceInjectorHolder)
>>>> getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
>>>>   injector.getInstance(SomeClass.class);
>>>> }
>>>>
>>>> I was thinking about adding a GuiceComponentInjector to my application,
>>>> but I'm not using guice with wicket so I don't think I need that, any
>>>> suggestion?
>>>>
>>>> Edgar Merino
>>>>
>>>>
>>>>
>>>> Edgar Merino escribió:
>>>>
>>>>
>>>>> Hello,
>>>>>
>>>>>   I need to hold a reference to a Guice injector inside my
>>>>> WebApplication, however since the injector is not serializable I tried using
>>>>> a GuiceInjectorHolder and keeping a reference to it in my WebApplication,
>>>>> but I'm still getting serialization exceptions when redeploying my
>>>>> application. Why didn't it work? what should I do in this case to keep a
>>>>> reference to my Guice injector? Thanks in advance.
>>>>>
>>>>> Edgar Merino
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>>
>>>
>>>
>>
>>
>> -----
>> http://www.richard-wilkinson.co.uk My blog:
>> http://www.richard-wilkinson.co.uk
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: GuiceInjectorHolder inside WebApplication

Posted by Edgar Merino <do...@gmail.com>.
But I only need to keep a reference to a Guice injector in my 
WebApplication to use it across some methods in it, I don't need it 
inside my wicket components... I think the wicket-guice integration 
serves a different purpose, correct me if I'm wrong.

Edgar Merino


richardwilko escribió:
> Have you looked at the wicket guice integration?  I think that does it
> already.
>
> Richard
>
>
>
> Edgar Merino wrote:
>   
>> Let me correct that last response: the problem is not solved yet. I 
>> thought it was but after redeploying my application again I got a 
>> serialization exception, why didn't the previously supplied "solution" 
>> didn't work? can anyone give me a hand on this? thanks in advance.
>>
>> Edgar Merino
>>
>>
>>
>>
>> Edgar Merino escribió:
>>     
>>> Ok I re-read the javadoc for the GuiceInjectorHolder and found out I 
>>> had to use it as a MetaDataKey, so I did that in my application:
>>>
>>> public void init() {
>>>    //initialization code
>>>    Injector injector = Guice.createInjector();
>>>    setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new 
>>> GuiceInjectorHolder(injector));
>>> }
>>>
>>> public void someMethod() {
>>>    Injector injector = ((GuiceInjectorHolder) 
>>> getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
>>>    injector.getInstance(SomeClass.class);
>>> }
>>>
>>> I was thinking about adding a GuiceComponentInjector to my 
>>> application, but I'm not using guice with wicket so I don't think I 
>>> need that, any suggestion?
>>>
>>> Edgar Merino
>>>
>>>
>>>
>>> Edgar Merino escribió:
>>>       
>>>> Hello,
>>>>
>>>>    I need to hold a reference to a Guice injector inside my 
>>>> WebApplication, however since the injector is not serializable I 
>>>> tried using a GuiceInjectorHolder and keeping a reference to it in my 
>>>> WebApplication, but I'm still getting serialization exceptions when 
>>>> redeploying my application. Why didn't it work? what should I do in 
>>>> this case to keep a reference to my Guice injector? Thanks in advance.
>>>>
>>>> Edgar Merino
>>>>
>>>>         
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>>
>>     
>
>
> -----
> http://www.richard-wilkinson.co.uk My blog:
> http://www.richard-wilkinson.co.uk 
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: GuiceInjectorHolder inside WebApplication

Posted by richardwilko <ri...@gmail.com>.
Have you looked at the wicket guice integration?  I think that does it
already.

Richard



Edgar Merino wrote:
> 
> Let me correct that last response: the problem is not solved yet. I 
> thought it was but after redeploying my application again I got a 
> serialization exception, why didn't the previously supplied "solution" 
> didn't work? can anyone give me a hand on this? thanks in advance.
> 
> Edgar Merino
> 
> 
> 
> 
> Edgar Merino escribió:
>> Ok I re-read the javadoc for the GuiceInjectorHolder and found out I 
>> had to use it as a MetaDataKey, so I did that in my application:
>>
>> public void init() {
>>    //initialization code
>>    Injector injector = Guice.createInjector();
>>    setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new 
>> GuiceInjectorHolder(injector));
>> }
>>
>> public void someMethod() {
>>    Injector injector = ((GuiceInjectorHolder) 
>> getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
>>    injector.getInstance(SomeClass.class);
>> }
>>
>> I was thinking about adding a GuiceComponentInjector to my 
>> application, but I'm not using guice with wicket so I don't think I 
>> need that, any suggestion?
>>
>> Edgar Merino
>>
>>
>>
>> Edgar Merino escribió:
>>> Hello,
>>>
>>>    I need to hold a reference to a Guice injector inside my 
>>> WebApplication, however since the injector is not serializable I 
>>> tried using a GuiceInjectorHolder and keeping a reference to it in my 
>>> WebApplication, but I'm still getting serialization exceptions when 
>>> redeploying my application. Why didn't it work? what should I do in 
>>> this case to keep a reference to my Guice injector? Thanks in advance.
>>>
>>> Edgar Merino
>>>
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 


-----
http://www.richard-wilkinson.co.uk My blog:
http://www.richard-wilkinson.co.uk 
-- 
View this message in context: http://www.nabble.com/GuiceInjectorHolder-inside-WebApplication-tp19989539p19995217.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: GuiceInjectorHolder inside WebApplication

Posted by Edgar Merino <do...@gmail.com>.
Let me correct that last response: the problem is not solved yet. I 
thought it was but after redeploying my application again I got a 
serialization exception, why didn't the previously supplied "solution" 
didn't work? can anyone give me a hand on this? thanks in advance.

Edgar Merino




Edgar Merino escribió:
> Ok I re-read the javadoc for the GuiceInjectorHolder and found out I 
> had to use it as a MetaDataKey, so I did that in my application:
>
> public void init() {
>    //initialization code
>    Injector injector = Guice.createInjector();
>    setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new 
> GuiceInjectorHolder(injector));
> }
>
> public void someMethod() {
>    Injector injector = ((GuiceInjectorHolder) 
> getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
>    injector.getInstance(SomeClass.class);
> }
>
> I was thinking about adding a GuiceComponentInjector to my 
> application, but I'm not using guice with wicket so I don't think I 
> need that, any suggestion?
>
> Edgar Merino
>
>
>
> Edgar Merino escribió:
>> Hello,
>>
>>    I need to hold a reference to a Guice injector inside my 
>> WebApplication, however since the injector is not serializable I 
>> tried using a GuiceInjectorHolder and keeping a reference to it in my 
>> WebApplication, but I'm still getting serialization exceptions when 
>> redeploying my application. Why didn't it work? what should I do in 
>> this case to keep a reference to my Guice injector? Thanks in advance.
>>
>> Edgar Merino
>>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: GuiceInjectorHolder inside WebApplication

Posted by Edgar Merino <do...@gmail.com>.
Ok I re-read the javadoc for the GuiceInjectorHolder and found out I had 
to use it as a MetaDataKey, so I did that in my application:

public void init() {
    //initialization code
    Injector injector = Guice.createInjector();
    setMetaData(GuiceInjectorHolder.INJECTOR_KEY, new 
GuiceInjectorHolder(injector));
}

public void someMethod() {
    Injector injector = ((GuiceInjectorHolder) 
getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector();
    injector.getInstance(SomeClass.class);
}

I was thinking about adding a GuiceComponentInjector to my application, 
but I'm not using guice with wicket so I don't think I need that, any 
suggestion?

Edgar Merino



Edgar Merino escribió:
> Hello,
>
>    I need to hold a reference to a Guice injector inside my 
> WebApplication, however since the injector is not serializable I tried 
> using a GuiceInjectorHolder and keeping a reference to it in my 
> WebApplication, but I'm still getting serialization exceptions when 
> redeploying my application. Why didn't it work? what should I do in 
> this case to keep a reference to my Guice injector? Thanks in advance.
>
> Edgar Merino
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org