Hello all,

I see that my previous mail is not clear.
Regarding the first issue (does the path be empty or null), I've entered a new RFC for that: http://restlet.tigris.org/issues/show_bug.cgi?id=659.

Regarding the second issue about the computation of the target reference, it works correctly for me (I get "http://localhost:8081/some/path) and is illustrated by the sample code attached to the previous mail.

Best regards,
Thierry Boileau
--
Restlet ~ Core developer ~ http://www.restlet.org
Noelios Technologies ~ Co-founder ~ http://www.noelios.com

Hi Thierry and Tamas,
 
According to this paragraph:
 
we should indeed produce "http://localhost:8081/some/path" in this case.
 
Thierry, could you fix this in SVN trunk and 1.1 branch?
 
Best regards,
Jérôme Louvel
--
Restlet ~ Founder and Lead developer ~
http://www.restlet.org
Noelios Technologies ~ Co-founder ~ http://www.noelios.com
 


De : Thierry Boileau [mailto:[EMAIL PROTECTED]]
Envoyé : lundi 17 novembre 2008 08:28
À : [email protected]
Objet : Re: getRootRef() returns null?

Hello Tamás

>I know that the value above does not have a path, but for some reason
>i expected to have root ("/") returned instead of null.
According to the URI specification (http://www.ietf.org/rfc/rfc3986.txt, chapter "3 Syntax Components), I see that the path is required but can be empty...
In your case, I think it rather should be empty than null or "/". So you point something important.
Jérôme, any thoughts?

>Reference ref = new Reference( request.getRootRef(), relPart );
>ref.getTargetRef() returns "some/path", which is wrong in my opinion.
>I would expect "http://localhost:8081/some/path" as resolved target
>reference, right?
That's what I get in a sample application (attached to this mail).


Best regards,
Thierry Boileau
--
Restlet ~ Core developer ~ http://www.restlet.org
Noelios Technologies ~ Co-founder ~ http://www.noelios.com


Hi,

After debugged the cause :)

The situation I have is the following (just as reminder: restlet
1.1.1, runned in j2ee webapp using ServletServer):

I am constructing a reference, that is made from base part and path.

The base reference is got using the request.getRootRef(), and it -- in
my case -- yields "http://localhost:8081", since the webapp is mounted
at root of web container, and the Application is at the root of webapp
(handles "/*").

The resulting reference is constructed like this:

Reference ref = new Reference( request.getRootRef(), relPart );

next, i have a check:

!ref.getBaseRef().getPath().endsWith( "/" ), but it fails with NPE,
since the getPath() of the base reference returns null.

I know that the value above does not have a path, but for some reason
i expected to have root ("/") returned instead of null.

Furthermore, with values above, the following is happening:

basePart (is of type Reference got using request.getRootRef()) =
"http://localhost:8081"
relPart = "some/path"

And

Reference ref = new Reference( request.getRootRef(), relPart );

ref.getTargetRef() returns "some/path", which is wrong in my opinion.
I would expect "http://localhost:8081/some/path" as resolved target
reference, right?

So, my question is: is this the expected behaviour (and my check
should look for null path too), or it is restlet bug?


Thanks in advance,
~t~


On Thu, Nov 13, 2008 at 4:43 PM, Tamás Cservenák <[EMAIL PROTECTED]> wrote:
  
Hi Thierry,

yes, you are right. I have verified your "sample" code using Tomcat 6,
Jetty 6 and our custom (jetty6 and plexus based) Plexus Webapp
container, and it works. That means our integration has some bug out
there....

Thanks,
~t~

On Wed, Nov 12, 2008 at 4:52 PM, Tamás Cservenák <[EMAIL PROTECTED]> wrote:
    
Hi Thierry,

This is Nexus, so: restlet version 1.1.1, integrated with Plexus
(latest beta2) and Jetty as servlet container. But, the Application
itself runs in slightly modified SerlvetServer (modified, since it
does a lookup for Application as Component, and does not instantiates
the Application manually, but falls back to "default" SerlvetServer
behavior if component is not found.

Is there any "critical" place (ie. ServletServer Application
instantiation, or whatever) what could affect the RootRef calculation?

Will look at your example, and will try to find where are we messing
it within Nexus.

~t~

On Wed, Nov 12, 2008 at 11:10 AM, Thierry Boileau
<[EMAIL PROTECTED]> wrote:
      
Hello Tamás

it seems weird. Could precise your version of Restlet? Are you working with
the Spring extension?
I send you a sample Eclipse project which seems to work fine (Restlet 1.1).
It displays the rootRef from a resource.


Best regards,
Thierry Boileau
--
Restlet ~ Core developer ~ http://www.restlet.org
Noelios Technologies ~ Co-founder ~ http://www.noelios.com


Hi there,

i just want to ask is it valid to have

request.getRootRef()

returning null?

That is happening when Application is "mounted" at root of the j2ee
webapp container (at "/"). When it runs in some of the "usual" context
paths (ie. "/nexus"), it works fine, and returns the expected
reference to the root of that context path.

        
--
Thanks,
~t~

      
--
Thanks,
~t~

Reply via email to