Paul, The problem is that the URI without the trailing slash isn't equivalent to the one with it. It's true that in many cases, people assume it is equivalent but it doesn't have to. Also, relative URIs can be expressed in the same way if the ends with a slash or not, leading to further routing issues. The only way we found to clean that is to force the client to redirect itself to the URI with a slash. However, it isn't something we should do automatically. BTW, there is a related RFE: "Improve matching of directory URIs" http://restlet.tigris.org/issues/show_bug.cgi?id=532 Best regards, Jerome Louvel -- Restlet ~ Founder and Lead developer ~ <http://www.restlet.org/> http://www.restlet.org Noelios Technologies ~ Co-founder ~ <http://www.noelios.com> http://www.noelios.com
_____ De : Paul Austin [mailto:mail-li...@revolsys.com] Envoyé : mardi 7 avril 2009 21:58 À : discuss@restlet.tigris.org Objet : Re: [1.1.3] Tomcat + RestletFrameworkServlet mapping SpringBeanRouter to / Here is a class which fixes the issue. Probably a better solution would be to change the Route class so that if the remainingPart is "" it sets it to "/" before doing the regex matching. On a related note is it possible to force exact matching so that say /apps would be mapped but not /apps/xyz? public class RootSpringBeanRouter extends SpringBeanRouter { @Override public void handle(Request request, Response response) { Reference resourceRef = request.getResourceRef(); if (resourceRef.getRemainingPart().equals("")) { resourceRef.addSegment(""); } super.handle(request, response); } } On Tue, Apr 7, 2009 at 12:27 PM, Paul Austin <mail-li...@revolsys.com> wrote: In my project I am deploying an application as a war file. The root of the web application /* is mapped to the RestletFrameworkServlet so that all handling is performed by Restlet. <servlet> <servlet-name>bpf</servlet-name> <servlet-class>com.noelios.restlet.ext.spring.RestletFrameworkServlet</servl et-class> </servlet> <servlet-mapping> <servlet-name>bpf</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> The root restlet is a SpringBeanRouter and I have a mapping for / to a resource as shown below. <bean id="root" class="org.restlet.ext.spring.SpringBeanRouter" /> <bean name="/" id="rootResource" scope="prototype" class="myResourceClass" /> The war is deployed to /ws on my server. If I access /ws I get an Restlet status page error saying "The server has not found anything matching the request URI" but if I use /ws/ it works correctly. I tried mapping to "" to see if that would work and it gives the same behaviour. Is it possible to modify the router so that the root resource does not need the trailing slash? Cheers, Paul ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1594914