--
You received this message because you are subscribed to the Google Groups "google-guice" group.
To post to this group, send email to google...@googlegroups.com.
To unsubscribe from this group, send email to google-guice...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
Finally, you must decide when the persistence service is to be started by invoking start() on PersistService. I typically use a simple initializer class that I can trigger at a time of my choosing:
public class MyInitializer {I always bound it asEagerSingleton, so it gets started right when the bindings are being processed
@Inject MyInitializer(PersistService service) {
service.start();
// At this point JPA is started and ready.
}
}
com.google.inject.ProvisionException: Guice provision errors:
1) Error in custom provider, java.lang.NullPointerException
while locating com.google.inject.persist.jpa.JpaPersistService
while locating javax.persistence.EntityManager
1 error
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
br.impa.apps.eventos.infra.dao.impl.EventoDAOImpl.save(EventoDAOImpl.java:31)
br.impa.apps.eventos.infra.dao.impl.EventoDAOImpl.save(EventoDAOImpl.java:23)
br.impa.apps.eventos.servico.impl.EventoServiceImpl.save(EventoServiceImpl.java:41)
br.impa.apps.eventos.ws.EventoWS.list(EventoWS.java:30)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1465)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1396)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1345)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1335)
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
root cause
java.lang.NullPointerException
com.google.inject.persist.jpa.JpaPersistService.begin(JpaPersistService.java:70)
com.google.inject.persist.jpa.JpaPersistService.get(JpaPersistService.java:50)
com.google.inject.persist.jpa.JpaPersistService.get(JpaPersistService.java:34)
com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:55)
com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
br.impa.apps.eventos.infra.dao.impl.EventoDAOImpl.save(EventoDAOImpl.java:31)
br.impa.apps.eventos.infra.dao.impl.EventoDAOImpl.save(EventoDAOImpl.java:23)
br.impa.apps.eventos.servico.impl.EventoServiceImpl.save(EventoServiceImpl.java:41)
br.impa.apps.eventos.ws.EventoWS.list(EventoWS.java:30)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1465)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1396)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1345)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1335)
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
Classes:
public class GuiceServletConfig extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
Injector i = Guice.createInjector(new ServletModule() {
@Override
protected void configureServlets() {
// Bind classes
bind(PerRequestResource.class);
bind(EventoWS.class);
bind(EventoService.class).to(EventoServiceImpl.class);
bind(EventoDAO.class).to(EventoDAOImpl.class);
bind(Principal.class).toProvider(PrincipalProvider.class);
bind(SecurityContext.class).to(MySecurityContext.class);
install(new JpaPersistModule("eventosImpa"));
serve("/*").with(GuiceContainer.class);
}
});
return i;
}
}
DAO:
public class EventoDAOImpl implements EventoDAO {
private final transient Logger log = Logger.getLogger(EventoDAOImpl.class);
@Inject private Provider<EntityManager> entityManager;
public EntityManager save(Evento object) {
return entityManager.get();
}
}
The method save return an error.
Thnks
install(new JpaPersistModule("eventosImpa"));
before binding any other classes that require an EntityManager. Just
move it to the top of your configure() method:
See "Web Environments" in:
http://code.google.com/p/google-guice/wiki/JPA
On 4 July 2011 01:06, Gabriel Cardelli
<gabrielcasti...@gmail.com> wrote:
> I'm trying execute Guice + JPA but i get an error:
>
> com.google.inject.ProvisionException: Guice provision errors:
>
> 1) Error in custom provider, java.lang.NullPointerException
> while locating com.google.inject.persist.jpa.JpaPersistService
> while locating javax.persistence.EntityManager
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-guice/-/LvUn4p3OVkYJ.
In reply to your other mail, yes you should use PersistFilter for all
your servlets that you wish to utilize Guice provided JPA classes.
On 4 July 2011 12:06, Gabriel Cardelli
> --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.