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 google-guice...@googlegroups.com <javascript:>.
> To post to this group, send email to google...@googlegroups.com 
> <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/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 google-guice+unsubscr...@googlegroups.com.
To post to this group, send email to google-guice@googlegroups.com.
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to