Hi Stian,
As an application can be attached to multiple virtual hosts, there are
potentially multiple root URIs. So, the only reliable way to get this
information is from the Request object, via the getRootRef() method.
Best regards,
Jerome
Stian Soiland a écrit :
Since I'm generating the URIs in my documents as absolute links, I
need some kind of mechanism to find what is the base URI for my
application.
In particular when deploying as a WAR file, the URI is determined by
the name of the WAR file, so blah.war would be deployed as for example:
http://mymachine.com/blah/{whatever}
where {whatever} would be the part of the URI that Restlet would route
on.
in particular my "URIFactory" needs to be called with
setRoot("http://mymachine.com:9999/blah/") so it can generate correct
URIs.
Is there a mechanism within Restlet for me to get this URI? I realise
I might not be able to get it until the first request has been sent, I
could do it myself in a filter, although I would still have to make
some kind of educated guess as to where the Tomcat part of the URI
stops and the restlet part starts. (For instance, since everything
below is routed at '/v1/' I could naively just scan for that substring)
I had this problem also when running as a standalone server with
Jetty, but since I then started the server on a particular port I
could set the root to "http://localhost:8976" from the main() method.