I can't get this to work like I want:

TemplateRoute route = router.attach( "/", MyResourceA.class );
route.setMatchingMode(Template.MODE_STARTS_WITH);
router.attachDefault(new Directory(getContext(), "war:///"));

this always loads MyResourceA, because the main url ("localhost/MyApp/") also 
starts with a "/". But this should be attached to the war:/// directory instead 
of MyResourceA

So I tried to attach MyResourceA as default and in this resource I evaluate the 
relative reference with getRequest().getResourceRef().getRelativeRef()

But how can I forward to Directory(getContext(), "war:///") in case the 
relativeRef is "." ?



> Hi,
> 
> by default, the router matches the routes using the "equals" mode.
> In your case, you seem to need something which is more like "starts with":
> 
> TemplateRoute route = router.attach( "/", MyResourceB.class );
> route.setMatchingMode(Template.MODE_STARTS_WITH);
> 
> 
> 
> Best regards,
> Thierry Boileau
> 
> > thank you very much!
> >
> > I used your solution and it works good. But there is still a small problem:
> >
> > application class:
> >
> > router.attach( "/restlet/myresource",MyResourceA.class );
> > router.attach( "/*", MyResourceB.class );
> > router.attachDefault(new Directory(getContext(), "war:///"));
> >
> > I want to call MyResourceB when I type something like 
> > "localhost/MyRestletApp/requesturl" but this doesn't work. It always tries 
> > to convert the target to "war:///requesturl"
> >
> > What is wrong?
> > Thanks in advance!
> >
> >

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2437099

Reply via email to