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