Hi,

I've the same issue.

I try to migrate a web application based to wicket with guice 1.0 to 2.0.
I've no problem with guice 1.0, but the same error that you with guice 2.0.
To bypass the problem I use :

public class ModuleConf extends AbstractModule {

    @Override
    protected void configure() {
        /*
         * Configuration pour la gestion des resources externes
         */

        bind(DataSource.class).toProvider(fromJndi(DataSource.class,
"myDatasource"));

        /*
         * Configuration de Tallystick
         */


    }

    @Provides
    public Context initContext() {
        try {
            return new InitialContext();
        } catch (NamingException e) {
            throw new RuntimeException("Unable to initialize context.",e);
        }
    }

}




2009/7/17 TuoKor <[email protected]>

>
> Hi,
>
> I've been trying to bind InitialContext to Context so that I could
> bind a DataSource from jndi. For some reason guice crashes with the
> following error when trying to bind InitialContext.
> The application that I'm writing is a web app and the module which
> loads context is added in the GuiceServletContextListener
>
>
> The Error:
> SEVERE: Exception sending context initialized event to listener
> instance of class com.webapp.listeners.GuiceLoader
> com.google.inject.internal.ComputationException:
> com.google.inject.internal.cglib.core.CodeGenerationException:
> java.lang.reflect.InvocationTargetException-->null
>        at com.google.inject.internal.MapMaker$StrategyImpl.compute
> (MapMaker.java:553)
>        at com.google.inject.internal.MapMaker$StrategyImpl.compute
> (MapMaker.java:419)
>        at com.google.inject.internal.CustomConcurrentHashMap
> $ComputingImpl.get(CustomConcurrentHashMap.java:2041)
>        at com.google.inject.internal.FailableCache.get(FailableCache.java:
> 46)
>        at com.google.inject.ConstructorInjectorStore.get
> (ConstructorInjectorStore.java:52)
>        at com.google.inject.ConstructorBindingImpl.initialize
> (ConstructorBindingImpl.java:57)
>        at
> com.google.inject.InjectorImpl.initializeBinding(InjectorImpl.java:
> 377)
>        at com.google.inject.InjectorImpl.createJustInTimeBinding
> (InjectorImpl.java:645)
>        at com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
> (InjectorImpl.java:581)
>        at com.google.inject.InjectorImpl.getJustInTimeBinding
> (InjectorImpl.java:172)
>        at
> com.google.inject.InjectorImpl.getBindingOrThrow(InjectorImpl.java:
> 132)
>        at com.google.inject.InjectorImpl.getInternalFactory
> (InjectorImpl.java:651)
>        at com.google.inject.FactoryProxy.notify(FactoryProxy.java:48)
>        at com.google.inject.BindingProcessor.runCreationListeners
> (BindingProcessor.java:230)
>        at com.google.inject.InjectorBuilder.initializeStatically
> (InjectorBuilder.java:131)
>        at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:105)
>        at com.google.inject.Guice.createInjector(Guice.java:92)
>        at com.google.inject.Guice.createInjector(Guice.java:69)
>        at com.google.inject.Guice.createInjector(Guice.java:59)
>        at fi.bitec.mobilesafe.listeners.GuiceLoader.getInjector
> (GuiceLoader.java:19)
>        at
> com.google.inject.servlet.GuiceServletContextListener.contextInitialized
> (GuiceServletContextListener.java:43)
>        at org.apache.catalina.core.StandardContext.listenerStart
> (StandardContext.java:3934)
>        at org.apache.catalina.core.StandardContext.start
> (StandardContext.java:4429)
>        at org.apache.catalina.core.StandardContext.reload
> (StandardContext.java:3190)
>        at org.apache.catalina.loader.WebappLoader.backgroundProcess
> (WebappLoader.java:404)
>        at org.apache.catalina.core.ContainerBase.backgroundProcess
> (ContainerBase.java:1309)
>        at org.apache.catalina.core.ContainerBase
> $ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
>        at org.apache.catalina.core.ContainerBase
> $ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
>        at org.apache.catalina.core.ContainerBase
> $ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
>        at org.apache.catalina.core.ContainerBase
> $ContainerBackgroundProcessor.run(ContainerBase.java:1590)
>        at java.lang.Thread.run(Unknown Source)
> Caused by:
> com.google.inject.internal.cglib.core.CodeGenerationException:
> java.lang.reflect.InvocationTargetException-->null
>        at
> com.google.inject.internal.cglib.core.AbstractClassGenerator.create
> (AbstractClassGenerator.java:237)
>        at
> com.google.inject.internal.cglib.reflect.FastClass$Generator.create
> (FastClass.java:64)
>        at com.google.inject.internal.BytecodeGen.newFastClass
> (BytecodeGen.java:166)
>        at com.google.inject.DefaultConstructionProxyFactory$1.<init>
> (DefaultConstructionProxyFactory.java:54)
>        at com.google.inject.DefaultConstructionProxyFactory.create
> (DefaultConstructionProxyFactory.java:52)
>        at com.google.inject.ProxyFactory.create(ProxyFactory.java:152)
>        at com.google.inject.ConstructorInjectorStore.createConstructor
> (ConstructorInjectorStore.java:84)
>        at com.google.inject.ConstructorInjectorStore.access$000
> (ConstructorInjectorStore.java:31)
>        at com.google.inject.ConstructorInjectorStore$1.create
> (ConstructorInjectorStore.java:39)
>        at com.google.inject.ConstructorInjectorStore$1.create
> (ConstructorInjectorStore.java:35)
>        at com.google.inject.internal.FailableCache$1.apply
> (FailableCache.java:35)
>        at com.google.inject.internal.MapMaker$StrategyImpl.compute
> (MapMaker.java:549)
>        ... 30 more
> Caused by: java.lang.reflect.InvocationTargetException
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>        at java.lang.reflect.Method.invoke(Unknown Source)
>        at com.google.inject.internal.cglib.core.ReflectUtils.defineClass
> (ReflectUtils.java:384)
>        at
> com.google.inject.internal.cglib.core.AbstractClassGenerator.create
> (AbstractClassGenerator.java:219)
>        ... 41 more
> Caused by: java.lang.NoClassDefFoundError: com/google/inject/internal/
> cglib/reflect/FastClass
>        at java.lang.ClassLoader.defineClass1(Native Method)
>        at java.lang.ClassLoader.defineClass(Unknown Source)
>        ... 47 more
> Caused by: java.lang.ClassNotFoundException:
> com.google.inject.internal.cglib.reflect.FastClass
>        at java.net.URLClassLoader$1.run(Unknown Source)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(Unknown Source)
>        at java.lang.ClassLoader.loadClass(Unknown Source)
>        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
>        at java.lang.ClassLoader.loadClass(Unknown Source)
>        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>        ... 49 more
>
> The GuiceContextListener
> import com.google.inject.Guice;
> import com.google.inject.Injector;
> import com.google.inject.servlet.GuiceServletContextListener;
>
>
> /**
>  * Application Lifecycle Listener implementation class GuiceLoader
>  *
>  */
> public class GuiceLoader extends GuiceServletContextListener {
>
>   @Override
>   public Injector getInjector() {
>           return Guice.createInjector(new ServletConfs(), new
> DatabaseModule
> ());
>   }
> }
>
> And finally the DatabaseModule
>
> public class DatabaseModule extends AbstractModule {
>
>        @Override
>        protected void configure() {
>
>                bind(Context.class).to(InitialContext.class);
>                bind(DataSource.class).toProvider(fromJndi(DataSource.class,
> "java:comp/env/jdbc/database"));
>
>        }
> }
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to