Sure, glad I could help.
Dhanji.
On Tue, Jul 7, 2009 at 11:44 PM, Jean-Philippe Couture
<[email protected]>wrote:
>
> Hi Dhanji,
>
> Thank you very much. After adding the DefaultServlet, I had it working
> by modifiying Main.java to look like the following:
>
> 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.addFilter(GuiceFilter.class, "/*", 0);
> context.addEventListener(new GuiceServletConfig());
> context.addServlet(DefaultServlet.class, "/");
>
> try {
> server.start();
> server.join();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
>
> Again, Dhanji, thank you very very much!
>
> Best regards,
>
> Jean-Philippe.
>
> On Jul 7, 9:01 am, "Dhanji R. Prasanna" <[email protected]> wrote:
> > 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 tohttp://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
-~----------~----~----~----~------~----~------~--~---