Does Jetty install the DefaultServlet without web.xml (I don't think so)? If it doesn't you have to apply GuiceFilter specifically to GuiceServlet.
Dhanji. On Tue, Jul 7, 2009 at 10:28 PM, Jean-Philippe Couture <[email protected]>wrote: > > Hi, > > I have an issue when trying to use Google Guice 2.0 (and the Guice- > Servlet 2.0 extension) with Jetty 7.0.0M4. Basically, I want to let > Guice handle the servlet injection, but for some reason, it doesn't > seem to work. > > I tried using a WebApp instead (along with a web.xml descriptor file), > with the same setup and it works as expected. I would prefer to avoid > depending on an external file to setup my Jetty Server. > > Upon startup, the message console shows: > > GuiceServletConfig.contextInitialized > GuiceServlet.init > > So it appears to set everything up as it should. Although, when I > browse to http://localhost:8080/index.html, I am shown a 404 - Not > Found error. > > I would really appreciate if you could give me a hint or two on how to > properly set things up. What I want to achieve, in a nutshell, is the > same result as with the web.xml descriptor file, without it. > (Everything done programmatically...) > > > Best regards, > > Jean-Philippe Couture, [email protected] > > > > > > > Here is a listing of the classes I use. And the web.xml descriptor > file I used when it worked. > > > GuiceServletConfig.java: > ------------------------ > public class GuiceServletConfig extends GuiceServletContextListener { > @Override > public void contextInitialized(ServletContextEvent > servletContextEvent) { > super.contextInitialized(servletContextEvent); > System.out.println("GuiceServletConfig.contextInitialized"); > } > > @Override > public void contextDestroyed(ServletContextEvent > servletContextEvent) > { > super.contextDestroyed(servletContextEvent); > System.out.println("GuiceServletConfig.contextDestroyed"); > } > > @Override > protected Injector getInjector() { > return Guice.createInjector(new ServletModule() { > @Override > protected void configureServlets() { > super.configureServlets(); > > this.serve("*.html").with(GuiceServlet.class); > } > }); > } > } > > > > GuiceServlet.java: > ------------------ > @Singleton > public class GuiceServlet extends HttpServlet { > @Override > public void init() throws ServletException { > super.init(); > System.out.println("GuiceServlet.init"); > } > > @Override > protected void doGet(HttpServletRequest request, HttpServletResponse > response) throws ServletException, IOException { > System.out.println("GuiceServlet.doGet"); > } > } > > > Main.java: > ---------- > public class Main { > public static void main(String... args) { > Server server = new Server(); > Connector connector = new SelectChannelConnector(); > connector.setHost("0.0.0.0"); > connector.setPort(8080); > server.setConnectors(new Connector[]{connector}); > > ServletContextHandler context = new > ServletContextHandler(server, > "/", ServletContextHandler.SESSIONS); > context.addEventListener(new GuiceServletConfig()); > context.addFilter(GuiceFilter.class, "/*", 0); > > try { > server.start(); > server.join(); > } catch (Exception e) { > e.printStackTrace(); > } > } > } > > > web.xml: > -------- > <?xml version="1.0" encoding="UTF-8"?> > <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http:// > www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:// > java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > version="2.5"> > <filter> > <filter-name>guiceFilter</filter-name> > > <filter-class>com.google.inject.servlet.GuiceFilter</filter-class> > </filter> > > <filter-mapping> > <filter-name>guiceFilter</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > <listener> > <listener-class>jettyguice.GuiceServletConfig</listener-class> > </listener> > </web-app> > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
