humm, at moment I call the appLifeCycle.init() the PersistFilter is already 
configured in the application because it is configured at the MainModule 
class configure method. There is any other way to make the persistService 
to start?

On Monday, December 4, 2017 at 2:04:00 PM UTC-2, scl wrote:
>
> This is what I mentioned before.
>
> You cannot use any of the JPA stuff until PersistService.start() has been 
> called.
> This will be called by the PersistFilter.init().
> So you have to wait with the appLifeCycle.init() until after the init() 
> method of PersistFilter
>
>
> On 04.12.2017 16:58, Diogo Luzzardi de Carvalho wrote:
>
> 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].
>> 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/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] <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/5bd6aa1d-2efc-453c-ba78-707bc1e74043%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/google-guice/5bd6aa1d-2efc-453c-ba78-707bc1e74043%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/a86f2bcc-26b6-499a-97b3-ba28de701295%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to