Hi, Guys. I haven't worked much with WebSphere. It is a horrible piece of software. I don't consider it a servlet spec compatible container (at least not out of the box).
What I think is happening: When you request /foo/bar/baz.rpc the server computes the target servlet, it doesn't match any declared servlet therefore it defaults to default servlet after which the filter chain is computed and invoked. Something along those lines if I understand how servlet containers work. I think the problem is that WS in the case of default servlet sets Servlet Path to "" even if you requested "/foo/bar/baz.rpc". Definitely take a look at http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rweb_custom_props.html. More specifically look for com.ibm.ws.webcontainer.enabledefaultservletrequestpathelements In general on WS 6.1 I'd try setting com.ibm.ws.webcontainer.enabledefaultservletrequestpathelements=true com.ibm.ws.webcontainer.invokeFiltersCompatibility=true prependSlashToResource=true The guys I work with say you have to go with your "instinct" when configuring WS. Hardly an engineering approach. HTH. Cheers, Alen On Jan 15, 5:16 am, "Dhanji R. Prasanna" <[email protected]> wrote: > I think the problem is with websphere, that you need a default servlet to > get the GuiceFilter to fire. > > Alen Vrecko knows more about this. But other servlet containers are > generally well behaved and ship with a DefaultServlet that serves files > statically (and typically a JSP servlet too). > > Dhanji. > > On Fri, Jan 15, 2010 at 3:07 PM, Ken <[email protected]> wrote: > > Am I the only one have this problem? I hope someone can share some > > help. > > > On Jan 10, 2:22 am, Ken <[email protected]> wrote: > > > I am playing with Guice 2.0 and WebSphere 6.1. My servlet is > > > configured in Guice module. > > > > public class ServletConfigListener extends GuiceServletContextListener > > > { > > > @Override > > > protected Injector getInjector() { > > > return Guice.createInjector(new RpcServerModule()); > > > } > > > > } > > > > public class RpcServerModule extends ServletModule { > > > @Override > > > protected void configureServlets() { > > > serve("*.rpc").with(RpcServiceImpl.class); > > > } > > > > } > > > > And I have configured GuiceFilter and above listener in my web.xml. > > > <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> > > > gov.ontario.mnr.irs.ServletConfigListener > > > </listener-class> > > > </listener> > > > > However my servlet RpcServiceImpl is never called. I traced Guice and > > > found out in class com.google.inject.servlet.ServletDefinition, method > > > service(), it tries to match the servlet path with my servlet pattern: > > > public boolean service(ServletRequest servletRequest, > > > ServletResponse servletResponse) throws IOException, > > > ServletException { > > > final boolean serve = shouldServe(((HttpServletRequest) > > > servletRequest).getServletPath()); > > > > But the servlet path always equals to "", then the pattern is not > > > matched. Should Guice use request URI instead of servlet path when try > > > to match servlet pattern? > > > > I worked this around by putting following lines in web.xml: > > > <servlet> > > > <servlet-name>RpcServlet</servlet-name> > > > <display-name>Gwt-Rpc Servlet</display-name> > > > <servlet-class>com.my.RpcServiceImpl</servlet-class> > > > </servlet> > > > <servlet-mapping> > > > <servlet-name>RpcServlet</servlet-name> > > > <url-pattern>*.rpc</url-pattern> > > > </servlet-mapping> > > > > I don't believe this is a Guice bug, as if it is a bug, it should be > > > very easy to be detected. What did I do wrong? Any help is very > > > appreciated. Thank you. > > > -- > > 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]<google-guice%[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.
