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~
>



-- 
Thanks,
~t~

Reply via email to