Re: Problem implementing simple WebDAV Server

Lukas Mathis wrote:
> Hi,
> 
> I'm trying to implement a simple WebDAV server. So far, I've implemented a
> propfind method based on example code found in Lisa Dusseault's book
> "WebDAV: Next-Generation Collaborative Web Authoring". The method simply
> returns an empty directory. Unfortunately, Trying to access it using
> Windows' web folders ("webfolder client") gives an error ("Cannot connect to
> the Web server http://10.0.0.70:4444/webdav/. The server could not be
> located, or may be too busy to respond. Please check your typing or check to
> make sure the Web server is available"). BitKinex, on the other hand,
> displays the empty directory just fine.
> 
> One possible source of the problem may be that web folders seem to try to
> access or create several files with "vti" in their name - outside the
> /webdav/ folder. This fails, obviously - the root of my server is a normal
> web server, no WebDAV server.

That's the client trying Frontpage Extensions after it wasn't happy with 
the PROPFIND reply.

> I've tried several fixes to go around bugs in web folders, including
> changing what options and headers / and /webdav/ return. On another list,
> Julian Reschke gave me some pointers to such bugs in web folders, but I did
> not manage to fix my problem. I'm not sure if the problem really lies with
> web folders, or if I'm just missing some error in my code which BitKinex
> ignores.
> 
> Any help would be greatly appreciated.
> 
> Here's the exchange between web folders and my simple WebDAV server (running
> as a Servet inside /webdav):
> 
> 
> Request >>>>>>>>>>>>>>>>>>>>>
> 
> PROPFIND /webdav HTTP/1.1
> Content-Language: en-us
> Accept-Language: de-ch, en-us;q=0.5
> Content-Type: text/xml
> Translate: f
> Depth: 0
> Content-Length: 0
> User-Agent: Microsoft Data Access Internet Publishing Provider DAV
> Host: 10.0.0.70:4444
> Connection: Keep-Alive
> Cookie: JSESSIONID=B671A9ACFAE14F486E24305FB6927063
> 
> Response <<<<<<<<<<<<<<<<<<<<
> 
> HTTP/1.1 207 Multi-Status
> Server: Apache-Coyote/1.1
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> Expires: Thu, 20 Oct 2005 09:01:56 GMT
> Pragma: no-cache
> Cache-Control: no-cache
> Content-Type: text/xml;charset=UTF-8
> Content-Length: 823
> 
> <?xml version="1.0" encoding="utf-8" ?>
>    <D:multistatus xmlns:D="DAV:">
>      <D:response>
>           <D:href>http://10.0.0.70:4444/webdav/</D:href>
>           <D:propstat>
>                <D:prop>
>                     <D:creationdate>2001-05-11T17:33:11Z</D:creationdate>
>                     <D:displayname>webdav</D:displayname>
>                     <D:getlastmodified>Thu, 16 Aug 2001 23:24:33
> GMT</D:getlastmodified>
>                     <D:resourcetype/>

That should be <D:resourcetype><D:collection/></D:resourcetype>, right?

>                     <D:supportedlock/>
>                     <D:lockdiscovery/>
>                </D:prop>
>                <D:status>HTTP/1.1 200 OK</D:status>
>           </D:propstat>
>           <D:propstat>
>                <D:prop><D:getetag/></D:prop>
>                <D:status>HTTP/1.1 404 Not Found</D:status>
>           </D:propstat>
>      </D:response>
>    </D:multistatus>
> 
> Request >>>>>>>>>>>>>>>>>>>>>
> 
> GET /_vti_inf.html HTTP/1.1
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> MIME-Version: 1.0
> Accept: */*
> User-Agent: Mozilla/4.0 (compatible; MS FrontPage 6.0)
> Host: 10.0.0.70:4444
> Accept: auth/sicily
> Content-Length: 0
> Connection: Keep-Alive
> Cache-Control: no-cache
> Cookie: JSESSIONID=B671A9ACFAE14F486E24305FB6927063
> 
> Response <<<<<<<<<<<<<<<<<<<<
> 
> HTTP/1.1 404 /_vti_inf.html
> Server: Apache-Coyote/1.1
> Content-Type: text/html;charset=ISO-8859-1
> Transfer-Encoding: chunked
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> 
> 851
> <html>
> <!-- removed html code -->
> </html>
> 0
> 
> Request >>>>>>>>>>>>>>>>>>>>>
> 
> POST /_vti_bin/shtml.exe/_vti_rpc HTTP/1.1
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> MIME-Version: 1.0
> User-Agent: MSFrontPage/6.0
> Host: 10.0.0.70:4444
> Accept: auth/sicily
> Content-Length: 41
> Content-Type: application/x-www-form-urlencoded
> X-Vermeer-Content-Type: application/x-www-form-urlencoded
> Connection: Keep-Alive
> Cache-Control: no-cache
> 
> Response <<<<<<<<<<<<<<<<<<<<
> 
> HTTP/1.1 404 /_vti_bin/shtml.exe/_vti_rpc
> Server: Apache-Coyote/1.1
> Content-Type: text/html;charset=ISO-8859-1
> Transfer-Encoding: chunked
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> 
> 851
> <html>
> <!-- removed html code -->
> </html>
> 0
> 
> Request >>>>>>>>>>>>>>>>>>>>>
> 
> method=server+version%3a6%2e0%2e2%2e5523
> GET /_vti_inf.html HTTP/1.1
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> MIME-Version: 1.0
> Accept: */*
> User-Agent: Mozilla/4.0 (compatible; MS FrontPage 6.0)
> Host: 10.0.0.70:4444
> Accept: auth/sicily
> Content-Length: 0
> Connection: Keep-Alive
> Cache-Control: no-cache
> Cookie: JSESSIONID=B671A9ACFAE14F486E24305FB6927063
> 
> Response <<<<<<<<<<<<<<<<<<<<
> 
> HTTP/1.1 404 /_vti_inf.html
> Server: Apache-Coyote/1.1
> Content-Type: text/html;charset=ISO-8859-1
> Transfer-Encoding: chunked
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> 
> 851
> <html>
> <!-- removed html code -->
> </html>
> 0
> 
> Request >>>>>>>>>>>>>>>>>>>>>
> 
> POST /_vti_bin/shtml.exe/_vti_rpc HTTP/1.1
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> MIME-Version: 1.0
> User-Agent: MSFrontPage/6.0
> Host: 10.0.0.70:4444
> Accept: auth/sicily
> Content-Length: 41
> Content-Type: application/x-www-form-urlencoded
> X-Vermeer-Content-Type: application/x-www-form-urlencoded
> Connection: Keep-Alive
> Cache-Control: no-cache
> 
> Response <<<<<<<<<<<<<<<<<<<<
> 
> HTTP/1.1 404 /_vti_bin/shtml.exe/_vti_rpc
> Server: Apache-Coyote/1.1
> Content-Type: text/html;charset=ISO-8859-1
> Transfer-Encoding: chunked
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> 
> 851
> <html>
> <!-- removed html code -->
> </html>
> 0
> 
> Request >>>>>>>>>>>>>>>>>>>>>
> 
> method=server+version%3a6%2e0%2e2%2e5523
> OPTIONS / HTTP/1.1
> Translate: f
> User-Agent: Microsoft Data Access Internet Publishing Provider Protocol
> Discovery
> Host: 10.0.0.70:4444
> Content-Length: 0
> Connection: Keep-Alive
> Cookie: JSESSIONID=B671A9ACFAE14F486E24305FB6927063
> 
> Response <<<<<<<<<<<<<<<<<<<<
> 
> HTTP/1.1 200 OK
> Server: Apache-Coyote/1.1
> Date: Thu, 20 Oct 2005 09:01:56 GMT
> Expires: Thu, 20 Oct 2005 09:01:56 GMT
> Pragma: no-cache
> Cache-Control: no-cache
> Allow: OPTIONS, GET, HEAD, POST, DELETE, TRACE, PROPPATCH, COPY, MOVE, LOCK,
> UNLOCK, PROPFIND, PUT
> DAV: 1,2
> Content-Type: text/html;charset=ISO-8859-1
> Content-Length: 1
> 
> 
> 
> 

Best regards, Julian

-- 
<green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760

Received on Thursday, 20 October 2005 10:05:53 UTC