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
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
*
*
*
*
--
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.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.