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
-~----------~----~----~----~------~----~------~--~---