klaus e. werner wrote:
> 
> I'm trying to implement an easy way for our staff to edit files
> (docbook, but also various formats of our own invention) using XXE
> connected by *WebDAV* to an eXist database
> (<http://exist-db.org/webdav.html>), and always get an annoying error
> which prevents saving to WebDAV location (screenshot attached).
> 
> This error message pops up on loading and while trying to save on the
> WebDAV location.
> 
> It seems that XXE cannot see if the file is locked or not and therefore,
> in order to be on the safe side, decides to abort. In fact, I get an
> advice (while loading) to "save in another location".
> 
> Now, that can be XXE's fault (hardly) or the app's fault (more probable)
> but I would be more interested to find a quick fix ...
> 
> - Is there a way to *disable* lock pre-checking?
> 
> - Can something be done from your side?
> 
> Here is the location of a test file:
> 
> <http://guest at museicapitolini.net/webdav/mcap/hrecord/0001.col.00765.xml>
> 

Using Options|Preferences, Open Section, "When possible, lock documents
stored on remote filesystems" frame and then setting "Preferred lock
mode" to "None" would *not* solve the problem.

The problem is that your URL is:

http://museicapitolini.net/webdav/mcap/hrecord/0001.col.00765.xml

and that the response of the eXist WebDAV implementation contains info
about:

/webdav/db/mcap/hrecord/0001.col.00765.xml

Notice the "db" after the "webdav".

-------------------------------------
<D:multistatus xmlns:D="DAV:">
    <D:response>
        <D:href>/webdav/db/mcap/hrecord/0001.col.00765.xml</D:href>
        <D:propstat>
            <D:prop>
                <D:resourcetype/>
                <D:getlastmodified>Mon, 30 Jul 2007 18:32:10
GMT</D:getlastmodified>
                <D:getcontentlength>4096</D:getcontentlength>
                <D:supportedlock>
                    <D:lockentry>
                        <D:lockscope>
                            <D:exclusive/>
                        </D:lockscope>
                        <D:locktype>
                            <D:write/>
                        </D:locktype>
                    </D:lockentry>
                </D:supportedlock>
                <D:lockdiscovery/>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
        </D:propstat>
    </D:response>
</D:multistatus>
-------------------------------------

Therefore, I've tried to open
http://museicapitolini.net/webdav/db/mcap/hrecord/0001.col.00765.xml
and this time it worked.



--> I would suggest to report this following problem to the author of eXist:

When I try to browse collection "/webdav/db/mcap/hrecord/", I see
nothing at all because the eXist WebDAV implementation returns
information about "/webdav/db/mcap/hrecord" and not about
"/webdav/db/mcap/hrecord/" (missing end '/'). And no, this is not a detail.

----------------------------------------------
DAVClient>>> PROPFIND '/webdav/db/mcap/hrecord/'
        Depth = '1'
        Content-Type = 'text/xml; charset="utf-8"'
---
<?xml version="1.0" encoding="utf-8" ?>
<propfind xmlns="DAV:">
  <prop>
    <resourcetype/>
    <getcontentlength/>
    <getlastmodified/>
    <supportedlock/>
    <lockdiscovery/>
  </prop>
</propfind>
---> 207 Multi Status <---
<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
    <D:response>
        <D:href>/webdav/db/mcap/hrecord</D:href>
        <D:propstat>
            <D:prop>
                <D:resourcetype>
                    <D:collection/>
                </D:resourcetype>
                <D:getlastmodified>Mon, 02 Jul 2007 12:59:53
GMT</D:getlastmodified>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
        </D:propstat>
        <D:propstat>
            <D:prop>
                <D:getcontentlength/>
                <D:lockdiscovery/>
                <D:supportedlock/>
            </D:prop>
            <D:status>HTTP/1.1 404 Not Found</D:status>
        </D:propstat>
    </D:response>
    ...
----------------------------------------------



--> You can debug all this easily if you specify Java system property
XXE_DAV_TRACE to any value. Example: java ... -DXXE_DAV_TRACE=1 .... You
may do so by modifiying the script used to start XXE: xxe, xxe.bat or
xxe.jstart.


Reply via email to