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 -~----------~----~----~----~------~----~------~--~---
