Did you make any progress on this issue?

On 04.12.2017 17:43, Diogo Luzzardi de Carvalho wrote:
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);

                returnserver;

                }


                @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));

                returninjector;

                }

                }

                |

-- 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
            <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
            <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
        <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
        <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
    <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
    <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] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[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 <https://groups.google.com/d/msgid/google-guice/a86f2bcc-26b6-499a-97b3-ba28de701295%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/f0fee54c-6dfc-c0d2-7e21-b44cb0a08e44%40gmx.ch.
For more options, visit https://groups.google.com/d/optout.

Reply via email to