Unfortunately it is not. I notice that when I change my code to do the 
following:
injector = Guice.createInjector(new 
MainModule(String.format("%s/WEB-INF/app", 
getServletContext().getRealPath("/")), getServletContext()));
UnitOfWork unitOfWork = injector.getInstance(UnitOfWork.class);
System.out.println(unitOfWork);
unitOfWork.begin();
try {
appLifeCycle = injector.getInstance(AppLifeCycle.class);
appLifeCycle.init(getServletContext());
} finally {
unitOfWork.end();
}

return injector;

 The injector was able to inject the UnitOfWork but when I call the method 
unitOfWork.begin() the exception occurs at line 77 of the JpaPersistService.

On Monday, December 4, 2017 at 1:24:10 PM UTC-2, scl wrote:
>
> Is this an open source project?
> If sou you could point me to the repo and I can have a look.
>
>
>
> On 04.12.2017 16:22, Diogo Luzzardi de Carvalho wrote:
>
> Hi, 
>
> I tried both of your solutions, and the nullpointer keeps happen. Also I 
> debug the application and I installed the JpaPersistModule before I try to 
> run the code when the exception happens.
>
> regards
> Diogo
>
> On Friday, December 1, 2017 at 8:42:53 PM UTC-2, scl wrote: 
>>
>> A second cause could be that the PersistenceService has not been started 
>> yet.
>> The persistence service is started by the PersistFiler.init() method.
>>
>> Unfortunately there is no way of checking if the PersistanceService is 
>> already started. And trying to start it twice will cause an exception the 
>> be thrown.
>>
>>
>> So my advice:
>> Make sure to delay the accessing of the DB until after the 
>> PersistFiler.init() method and wrap your code in a UnitOfWork.
>> The simplest trick is to register another ServletFilter after the 
>> PersistFilter and place your code in the init() method of this filter...
>>
>>
>> You may also have a look at Onami Persist which is an alternative 
>> implementation (but without @Finder)
>>
>>
>>
>> On 01.12.2017 23:25, Diogo Luzzardi de Carvalho wrote:
>>
>>
>>
>> On Friday, December 1, 2017 at 8:18:46 PM UTC-2, Diogo Luzzardi de 
>> Carvalho wrote: 
>>>
>>> java.lang.NullPointerException
>>>
>>>         at com.google.inject.persist.jpa.JpaPersistService.begin(
>>> JpaPersistService.java:77)
>>>
>>>         at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(
>>> JpaLocalTxnInterceptor.java:53)
>>>
>>>         at com.app.guice.AppGuiceServletContextListener.
>>> contextInitialized(AppGuiceServletContextListener.java:60)
>>>
>>>         at org.mortbay.jetty.handler.ContextHandler.startContext(
>>> ContextHandler.java:548)
>>>
>>>         at org.mortbay.jetty.servlet.Context.startContext(Context.java:
>>> 136)
>>>
>>>         at org.mortbay.jetty.webapp.WebAppContext.startContext(
>>> WebAppContext.java:1234)
>>>
>>>         at org.mortbay.jetty.handler.ContextHandler.doStart(
>>> ContextHandler.java:517)
>>>
>>>         at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.
>>> java:460)
>>>
>>>         at org.mortbay.component.AbstractLifeCycle.start(
>>> AbstractLifeCycle.java:50)
>>>
>>>         at org.mortbay.jetty.handler.HandlerWrapper.doStart(
>>> HandlerWrapper.java:130)
>>>
>>>         at org.mortbay.jetty.Server.doStart(Server.java:222)
>>>
>>>         at org.mortbay.component.AbstractLifeCycle.start(
>>> AbstractLifeCycle.java:50)
>>>
>>>         at com.app.Start.start(Start.java:126)
>>>
>>>         at com.app.Start.main(Start.java:194)
>>>
>>> Follows my servlet context listener: 
>>>
>>> package com.app.guice;
>>>
>>>
>>> import javax.servlet.ServletContext;
>>>
>>> import javax.servlet.ServletContextEvent;
>>>
>>>
>>> import org.mortbay.jetty.Server;
>>>
>>>
>>> import com.app.setup.AppLifeCycle;
>>>
>>> import com.google.inject.Guice;
>>>
>>> import com.google.inject.Injector;
>>>
>>> import com.google.inject.Provides;
>>>
>>> import com.google.inject.Singleton;
>>>
>>> import com.google.inject.servlet.GuiceServletContextListener;
>>>
>>>
>>> public class AppGuiceServletContextListener extends 
>>> GuiceServletContextListener {
>>>
>>>
>>> private AppLifeCycle appLifeCycle;
>>>
>>>
>>> private Server server;
>>>
>>>
>>> private ServletContext servletContext;
>>>
>>>
>>> private Injector injector;
>>>
>>>
>>> public AppGuiceServletContextListener(Server server) {
>>>
>>> super();
>>>
>>> this.server = server;
>>>
>>> }
>>>
>>>
>>> @Override
>>>
>>> public void contextDestroyed(ServletContextEvent ctx) {
>>>
>>> super.contextDestroyed(ctx);
>>>
>>> if (appLifeCycle != null) {
>>>
>>> appLifeCycle.destroy();
>>>
>>> }
>>>
>>> }
>>>
>>>
>>> @Override
>>>
>>> public void contextInitialized(ServletContextEvent servletContextEvent) 
>>> {
>>>
>>> servletContext = servletContextEvent.getServletContext();
>>>
>>> super.contextInitialized(servletContextEvent);
>>>
>>>
>>> appLifeCycle = injector.getInstance(AppLifeCycle.class);
>>>
>>> appLifeCycle.init(servletContext);
>>>
>>> }
>>>
>>>
>>> @Provides
>>>
>>> @Singleton
>>>
>>> Server provideServer(Injector injector) {
>>>
>>> final Server server = this.server;
>>>
>>> injector.injectMembers(server);
>>>
>>> return server;
>>>
>>> }
>>>
>>>
>>> @Override
>>>
>>> protected Injector getInjector() {
>>>
>>> System.out.println(servletContext);
>>>
>>> if (injector == null)
>>>
>>> injector = Guice.createInjector(new MainModule(String.format(
>>> "%s/WEB-INF/app", servletContext.getRealPath("/")), servletContext));
>>>
>>> return injector;
>>>
>>> }
>>>
>>> }
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "google-guice" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/google-guice.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/google-guice/4df2e8df-81e9-4523-80c6-b4c1cfafa763%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/google-guice/4df2e8df-81e9-4523-80c6-b4c1cfafa763%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> -- 
> You received this message because you are subscribed to the Google Groups 
> "google-guice" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected] 
> <javascript:>.
> Visit this group at https://groups.google.com/group/google-guice.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/google-guice/643a15e6-bbaa-4f9a-ab2e-deaea5461f77%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/google-guice/643a15e6-bbaa-4f9a-ab2e-deaea5461f77%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/5bd6aa1d-2efc-453c-ba78-707bc1e74043%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to