2009/9/9 Jean-Eudes COUIGNOUX <[email protected]>

> Hi,
>
> I've the same issue in a previous thread.
>
>
> http://groups.google.com/group/google-guice/browse_thread/thread/462c77c6b07246bd
>
> My problem were the line
> bind(Context.class).to(InitialContext.class);
>
> I replace this by
>
> @Provides
>     public Context initContext() {
>         try {
>             return new InitialContext();
>         } catch (NamingException e) {
>             throw new RuntimeException("Unable to initialize context.",e);
>         }
>     }
>

I think patch 343 would also fix it (and let you keep the original code)
because InitialContext comes from the system/container classloader
which is the situation that 343 addresses.

but if you can't use a patched build that's one way to workaround it...


> 2009/9/9 Stuart McCulloch <[email protected]>
>
>> 2009/9/9 Josh McDonald <[email protected]>
>>
>>> Hey guys,
>>>
>>> I've recently upgraded an app from Guice 1.0, and I'm getting a
>>> ClassNotFoundException: com.google.inject.internal.cglib.reflect.FastClass
>>> which makes no sense, as com.google.inject.internal.cglib.reflect.FastClass
>>> is in guice-2.0.jar :-/
>>>
>>> Any ideas? I've been pulling my hair out for hours :-/
>>>
>>
>> you might want to see if it works with the following patch:
>>
>>    http://code.google.com/p/google-guice/issues/detail?id=343
>>
>> for background about the classloading situation see:
>>
>>    http://code.google.com/p/google-guice/wiki/ClassLoading
>>    http://code.google.com/p/google-guice/wiki/OSGi
>>
>> HTH
>>
>>
>>> Code:
>>>
>>> public class Bootstrapper extends GuiceServletContextListener {
>>>
>>>     public static Injector applicationInjector;
>>>
>>>     @Override
>>>     protected Injector getInjector() {
>>>
>>>         Injector injector = Guice.createInjector(
>>>
>>>                 PersistenceService.usingJpa()
>>>                         .across(UnitOfWork.TRANSACTION)
>>>                         .addAccessor(LoginUserFinder.class)
>>>                         .addAccessor(PlayerFinder.class)
>>>                         .addAccessor(AgentFinder.class)
>>>                         .addAccessor(CoachFinder.class)
>>>                         .addAccessor(MembershipFinder.class)
>>>                         .buildModule(),
>>>
>>>                 FlexModule.buildModule(),
>>>
>>>                 new ServletModule() {
>>>
>>>                     @Override
>>>                     protected void configureServlets() {
>>>
>>>                         serve("/upload").with(UploadServlet.class,
>>> processWith(EntityImageProcessor.class));
>>>                         serve("/download/*").with(DownloadServlet.class);
>>>
>>> serve("/incoming/*").with(IncomingVideoServlet.class);
>>>                     }
>>>                 },
>>>
>>>                 BasketballExpressionsModule.buildModule());
>>>
>>>         //Kick start JPA.
>>>         injector.getInstance(PersistenceInitializer.class).start();
>>>
>>>         applicationInjector = injector;
>>>
>>>         return injector;
>>>     }
>>>
>>>     private Map<String, String> processWith(Class<? extends
>>> UploadProcessor> processorClass) {
>>>
>>>         Map<String, String> params = new HashMap<String, String>();
>>>         params.put("processorClass", processorClass.getName());
>>>
>>>         return params;
>>>     }
>>> }
>>>
>>> // -------------------------------------------------------------------
>>>
>>> public class BasketballExpressionsModule extends AbstractModule {
>>>
>>>     public void configure() {
>>>
>>>
>>> bindConstant().annotatedWith(JpaUnit.class).to("BasketballExpressionsPU");
>>>         bind(Context.class).to(InitialContext.class);
>>>
>>> bind(String.class).annotatedWith(Names.named("uploadFileLocation")).toProvider(JndiIntegration.fromJndi(String.class,
>>> "java:comp/env/basketballExpressions/uploadFileLocation"));
>>>
>>> bind(String.class).annotatedWith(Names.named("incomingVideoLocation")).toProvider(JndiIntegration.fromJndi(String.class,
>>> "java:comp/env/basketballExpressions/incomingVideoLocation"));
>>>     }
>>>
>>>     public static BasketballExpressionsModule buildModule() {
>>>         return new BasketballExpressionsModule();
>>>     }
>>> }
>>>
>>> --
>>> "Therefore, send not to know For whom the bell tolls. It tolls for thee."
>>>
>>> Josh 'G-Funk' McDonald
>>>   -  [email protected]
>>>   -  http://twitter.com/sophistifunk
>>>   -  http://flex.joshmcdonald.info/
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Cheers, Stuart
>>
>>
>>
>>
>
> >
>


-- 
Cheers, Stuart

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