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