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