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

Reply via email to