Hello Remy

> The DAV servlet is mostly unsupported if it's not mapped as the default
> servlet in a context. Ie, it may work, but it's untested.
> WebdavMethod.getRelativePath is in charge of extracting the relative path,
> so the root of the problem may be there.
> 
> However, I don't really understand why it way working some time ago but not
> anymore. 

I've largely worked it out now.  Here is a summary:

1.  "Win 2000 MyNetworkPlaces - Add Network Place", user-agent : 
Microsoft Data Access Internet Publishing Provider DAV 1.1, tries 
OPTIONS and PROPFIND on the exact URL you type in, whereas IE5.5,
user-agent : Microsoft Data Access Internet Publishing Provider DAV, 
always truncates that URL and tries OPTIONS on "/" and OPTIONS on the 
first path segment "/TestDrive".

So that's one reason at least why you need the webdav servlet mapped to 
the default servlet in the context - so that IE5.5's PEOPFIND returns 
207.  If it gets that, it happily does a PROPFIND on the path you 
actually typed - in my case PROPFIND /TestDrive/protected/webdav/files.

I'm not entirely clear why things have been working for me - certainly i 
did once have the webdav servlet as the default servlet in the context, 
and set up some webfolders.  I can only think that once i had some web 
folders set up, i could later set up another without IE5.5 trying to do 
its errant OPTIONS. I suspect this might be what happens, coz when you 
try open as web folder in IE5.5, it does somehow look to see what web 
folders are already set up.

2. The strange WebdavMethod.getRelativePath output occurs in cases like 
the following:

Path Info : null
Path translated : null
Query string : null
Request URI : /TestDrive/protected/webdav
Context path : /TestDrive
Servlet path : /protected/webdav

getPathInfo() = null so WebdavMethod.getRelativePath sets its result to 
getServletPath(), which = /protected/webdav

Slide then looks for an object found at /protected, which would only be 
there by coincidence, and logs:

18 Feb 2001 14:44:15 - INFO - GET (time: 113 ms) URI = /protected/webdav

In these circumstances, maybe it would be better to return / ?

Thanks

Jason

Reply via email to