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] <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/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]
<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/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/cf99a53e-8f85-c6a1-bc95-2ae2d5ca857e%40gmx.ch.
For more options, visit https://groups.google.com/d/optout.