Christopher, thanks for your tips, I will check now * ----------------------------------- Gabriel Cardelli Software Developer gabrcardelli.appspot.com * * ----------------------------------- * *
* 2011/6/21 Christopher Currie <[email protected]> > Gabriel, > > On github there is a minimal working Jersey + Guice application that > might serve as a starting point for modification for your service. > > https://github.com/sunnygleason/j4-minimal > > In particular, I think that the reason your Resource class isn't > getting injected is because you are using the Jersey ServletContainer > as your servlet in your web.xml. Guice servlet is different; the > request is handled at the filter level, and any servlets configured in > the web.xml should (ideally) never be called. > > I think you will need, at the end of EventosModule, after the "filter" > line, to add: > > Map<String,String> jerseyParams = new HashMap<String,String>(); > jerseyParams.put("com.sun.jersey.config.property.packages", > "br.impa.apps.eventos.ws"); > serve("/ws/*").with(GuiceContainer.class, jerseyParams); > > Also note that if you declare all of your Resource classes with > "bind()" calls as Mischa suggests, then you don't need the > jerseyParams argument. > > Please carefully read the docs on Guice Servlet: > http://code.google.com/p/google-guice/wiki/ServletModule > > Good luck, > Christopher > > On Tue, Jun 21, 2011 at 2:51 PM, Gabriel Cardelli > <[email protected]> wrote: > > Mischa Dasberg, added what you said and the error continues > > > > thz > > ----------------------------------- > > Gabriel Cardelli > > Software Developer > > gabrcardelli.appspot.com > > ----------------------------------- > > > > > > > > > > 2011/6/21 Gabriel Cardelli <[email protected]> > >> > >> I have two projects, server and client. > >> > >> The server has the Jersey and Guice, the client has Wicket and Guice > >> (Inject OK) > >> I'm trying to expose my web service to be consumed by wicket > >> > >> The big problem is that server-side Guice does not work. > >> > >> When I call the web service it returns java.lang.NullPointerException > >> at br.impa.apps.eventos.ws.EventoWS.list (EventoWS.java: 34) > >> > >> Line 34 is: return eventoService.list (); > >> > >> eventoService should be injected by Guice but is not. > >> > >> Someone tell me what's going on? > >> > >> > >> > >> ----------------------------------- > >> Gabriel Cardelli > >> Software Developer > >> gabrcardelli.appspot.com > >> ----------------------------------- > >> > >> > >> > >> > >> 2011/6/20 Mischa Dasberg <[email protected]> > >>> > >>> Hi Gabriel, > >>> Try adding the following in your Module: > >>> bind(EventoWS.class); > >>> That should work. > >>> Regards, > >>> Mischa > >>> > >>> On Mon, Jun 20, 2011 at 1:56 AM, Gabriel Cardelli > >>> <[email protected]> wrote: > >>>> > >>>> I'm trying to set up a project > >>>> using Google Guice 3.0 JAX-RS and Jersey 1.7 for the server > >>>> side however google guice is not injecting any class. > >>>> web.xml > >>>> <?xml version="1.0" encoding="ISO-8859-1"?> > >>>> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" > >>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >>>> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee > >>>> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > >>>> version="2.4"> > >>>> <display-name>Institucional Eventos - Wicket > Application</display-name> > >>>> <listener> > >>>> > >>>> > <listener-class>br.impa.apps.eventos.config.servlet.listener.ImpaGuiceServletContextListener</listener-class> > >>>> </listener> > >>>> <servlet> > >>>> <servlet-name>Jersey REST Service</servlet-name> > >>>> > >>>> > <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> > >>>> <init-param> > >>>> <param-name>com.sun.jersey.config.property.packages</param-name> > >>>> <param-value>br.impa.apps.eventos.ws</param-value> > >>>> </init-param> > >>>> <load-on-startup>1</load-on-startup> > >>>> </servlet> > >>>> <servlet-mapping> > >>>> <servlet-name>Jersey REST Service</servlet-name> > >>>> <url-pattern>/ws/*</url-pattern> > >>>> </servlet-mapping> > >>>> </web-app> > >>>> ImpaGuiceServletContextListener > >>>> public class ImpaGuiceServletContextListener extends > >>>> GuiceServletContextListener{ > >>>> private final transient Logger log = > >>>> Logger.getLogger(ImpaGuiceServletContextListener.class); > >>>> @Override > >>>> protected Injector getInjector() { > >>>> log.info("getInject() - Executando"); > >>>> return Guice.createInjector(new EventosModule()); > >>>> > >>>> } > >>>> } > >>>> EventosModule > >>>> public class EventosModule extends ServletModule { > >>>> private final transient Logger log = > >>>> Logger.getLogger(EventosModule.class.getName()); > >>>> public final static String PERSISTENCE_UNIT = "eventosImpa"; > >>>> public void configureServlets() { > >>>> log.info("Configurando Modulo - Eventos"); > >>>> final Map<String, String> params = new HashMap<String, String>(); > >>>> params.put("javax.ws.rs.Application", > >>>> "br.impa.apps.eventos.config.module.JerseyApp"); > >>>> install(new JpaPersistModule(PERSISTENCE_UNIT)); > >>>> filter("/*").through(PersistFilter.class); > >>>> > >>>> > bind(EventoService.class).to(EventoServiceImpl.class).in(Singleton.class); > >>>> filter("/*").through(GuiceFilter.class); > >>>> log.info("Cofigurando Modulo JPA"); > >>>> } > >>>> } > >>>> Web Service Rest > >>>> @Path("/evento") > >>>> @RequestScoped > >>>> public class EventoWS { > >>>> private final transient Logger log = Logger.getLogger(EventoWS.class); > >>>> @Inject > >>>> private EventoService eventoService; > >>>> @GET > >>>> @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) > >>>> public List<Evento> list() { > >>>> log.info("Executando método list()"); > >>>> log.info("EventoService: " + eventoService ); > >>>> return eventoService.list(null); > >>>> } > >>>> public void setEventoService(EventoService eventoService) { > >>>> this.eventoService = eventoService; > >>>> } > >>>> } > >>>> > >>>> When I try to run the web service > >>>> eventoService is null, > >>>> I am not able to understand why? > >>>> thks all! > >>>> Gabriel Cardelli > >>>> Software Developer > >>>> > >>>> > >>>> -- > >>>> You received this message because you are subscribed to the Google > >>>> Groups "google-guice" group. > >>>> 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. > >>> > >>> -- > >>> You received this message because you are subscribed to the Google > Groups > >>> "google-guice" group. > >>> 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. > >> > > > > -- > > You received this message because you are subscribed to the Google Groups > > "google-guice" group. > > 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. > > > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > 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. > > -- You received this message because you are subscribed to the Google Groups "google-guice" group. 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.
