Agreed! It took me a while to figure it all out. For what it's worth, I've documented it for the Prudence context (almost identical to pure Restlet):
http://threecrickets.com/prudence/manual/routing/#toc-Subsection-63 On Mon, Oct 4, 2010 at 7:17 PM, Leigh L. Klotz, Jr. <[email protected]>wrote: > It would nice to have the "known variables" feature of Resolver from the > message below mentioned in tutorial section > "10. URI rewriting and redirection" > at http://www.restlet.org/documentation/2.0/tutorial#part10 > > and again in JavaDoc for org.restlet.routing.Redirector > > http://www.restlet.org/documentation/2.0/jse/api/org/restlet/routing/Redirector.html > > because there's no way to know from looking at the tutorial or the > documentation for Redirector that this is possible, or required. > Resolver isn't mentioned at all in Redirector JavaDoc. > > In Restlet 1.1, you could do this: > > component.getDefaultHost().attach("/", > new > Redirector(component.getContext().createChildContext(), > > "/path/to/startPage.html", > > Redirector.MODE_CLIENT_SEE_OTHER)); > > but in Restlet 2.0 you need to do this: > component.getDefaultHost().attach("/", > new > Redirector(component.getContext().createChildContext(), > > "{rh}/path/to/startPage.html", > > Redirector.MODE_CLIENT_SEE_OTHER)); > > or else you get > java.lang.IllegalArgumentException: Relative references are only usable > when a base reference is set. > > Leigh. > > > > > -------- Original Message -------- Subject: Re: How to write an Universal > redirector Date: Wed, 24 Feb 2010 00:32:35 -0800 From: Thierry Boileau > <[email protected]> <[email protected]> Reply-To: discuss > <[email protected]> <[email protected]> To: > <[email protected]> <[email protected]> > > Hello, > > actually, the second parameter in the Redirector constructor is a template > using a set of known variables (see [0]). > You should be able to use the shipped Redirector, as follow (or something > similar) > new Redirector(getContext(), "http://192.168.100.1:8080/RESTfulServices{rr}", > Redirector.MODE_CLIENT_DISPATCHER)); > > Don't forget to declare the client HTTP connector on the component (such > redirection is seen as a new client call issued by the Component). This is > done in the web.xml file see ([1]) > > <servlet> > [...] > <init-param> > <param-name>org.restlet.clients</param-name> > <param-value>HTTP</param-value> > </init-param> > [...] > </servlet> > > [0] > http://www.restlet.org/documentation/2.0/jse/api/org/restlet/util/Resolver.html > [1] > http://www.restlet.org/documentation/2.0/jee/ext/org/restlet/ext/servlet/ServerServlet.html > > Best regards, > Thierry Boileau > > ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2668225

