|
3 | 3 | schematypens="http://purl.oclc.org/dsdl/schematron"?><article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"> |
4 | 4 | <info> |
5 | 5 | <title>WebDAV</title> |
6 | | - <date>1Q18</date> |
| 6 | + <date>4Q2018</date> |
7 | 7 | <keywordset> |
8 | 8 | <keyword>getting-started</keyword> |
9 | 9 | <keyword>interfaces</keyword> |
10 | 10 | </keywordset> |
11 | 11 | </info> |
12 | | - |
| 12 | + |
13 | 13 | <!-- ================================================================== --> |
14 | | - |
| 14 | + |
15 | 15 | <para>eXist-db ships with a <link xlink:href="http://en.wikipedia.org/wiki/WebDAV" condition="_blank">WebDAV</link> interface. |
16 | 16 | WebDAV makes it possible to manage database collections and documents just like directories and |
17 | 17 | files in a file system. You can copy, move, delete, view or edit files with any application |
18 | 18 | supporting the WebDAV protocol, including Windows Explorer, macOS Finder, <link xlink:href="http://www.webdav.org/cadaver" condition="_blank">cadaver</link>, <link xlink:href="http://www.konqueror.org/" condition="_blank">KDE Konqueror</link>, <link xlink:href="http://www.oxygenxml.com/" condition="_blank">oXygen XML Editor</link>, <link xlink:href="http://www.altova.com/" condition="_blank">XML Spy</link>, <link xlink:href="http://www.libreoffice.org/" condition="_blank">LibreOffice</link> and many others (see <xref linkend="compatibility"/> |
19 | 19 | below).</para> |
20 | 20 | <para>In the default configuration the WebDAV server can be accessed via the URLs <link xlink:href="http://localhost:8080/exist/webdav/db/">http://localhost:8080/exist/webdav/db/</link> and <link xlink:href="https://localhost:8443/exist/webdav/db/">https://localhost:8443/exist/webdav/db/</link> (since eXist-db 2.0). </para> |
21 | | - |
| 21 | + |
22 | 22 | <!-- ================================================================== --> |
23 | | - |
| 23 | + |
24 | 24 | <sect1 xml:id="compatibility"> |
25 | 25 | <title>Compatibility</title> |
26 | | - |
| 26 | + |
27 | 27 | <para>The <link xlink:href="http://milton.io" condition="_blank">Milton</link> project, on which eXist-db's WebDAV implementation is |
28 | 28 | build, maintains a detailed WebDAV client compatibility list that describes a "Recipe for |
29 | 29 | broad client compatibility." In case of any problems please read this document. Some |
|
48 | 48 | (Linux), OxygenXML and LibreOffice.</para> |
49 | 49 | <para>The following clients are reported to have issues: <link xlink:href="http://en.wikipedia.org/wiki/GVFS" condition="_blank">GVFS</link> (Nautilus) and <link xlink:href="http://www.netdrive.net/" condition="_blank">NetDrive</link>. However, this can change over time!</para> |
50 | 50 | </sect1> |
51 | | - |
| 51 | + |
52 | 52 | <!-- ================================================================== --> |
53 | | - |
| 53 | + |
54 | 54 | <sect1 xml:id="clients"> |
55 | 55 | <title>Clients</title> |
56 | | - |
57 | | - |
58 | | - |
| 56 | + |
| 57 | + |
| 58 | + |
59 | 59 | <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
60 | | - |
| 60 | + |
61 | 61 | <sect2 xml:id="webfolders"> |
62 | 62 | <title>Windows Web Folders</title> |
63 | | - |
| 63 | + |
64 | 64 | <para>Out of the box, Windows has <emphasis>some</emphasis> native support for the WebDAV |
65 | 65 | protocol, but there are some well-known issues. Please consult the following:</para> |
66 | 66 | <itemizedlist> |
|
76 | 76 | security.</para> |
77 | 77 | </listitem> |
78 | 78 | </itemizedlist> |
79 | | - |
80 | | - |
81 | | - |
| 79 | + |
| 80 | + |
| 81 | + |
82 | 82 | <para>To use WebDAV in Internet explorer:</para> |
83 | 83 | <itemizedlist> |
84 | 84 | <listitem> |
|
96 | 96 | </listitem> |
97 | 97 | </itemizedlist> |
98 | 98 | </sect2> |
99 | | - |
| 99 | + |
100 | 100 | <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
101 | | - |
| 101 | + |
102 | 102 | <sect2 xml:id="macos"> |
103 | 103 | <title>macOS Finder</title> |
104 | | - |
| 104 | + |
105 | 105 | <para>The eXist-db database can be accessed easily with the macOS Finder using the |
106 | 106 | <guimenuitem>Go, Connect to Server...</guimenuitem> menu. Use the eXist-db WebDAV URL |
107 | 107 | <code>http://localhost:8080/exist/webdav/db/</code>.</para> |
108 | | - |
| 108 | + |
109 | 109 | <note> |
110 | 110 | <para>In some previous MacOS releases, Apple repetitively changed their WebDAV |
111 | 111 | implementation significantly, introducing new bugs and problems. The main issue is that |
|
121 | 121 | the client does not work perfectly, for instance at bulk operations.</para> |
122 | 122 | </note> |
123 | 123 | </sect2> |
124 | | - |
| 124 | + |
125 | 125 | <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
126 | | - |
| 126 | + |
127 | 127 | <sect2 xml:id="oxygenxml"> |
128 | 128 | <title>oXygen XML Editor</title> |
129 | | - |
| 129 | + |
130 | 130 | <itemizedlist> |
131 | 131 | <listitem> |
132 | 132 | <para>Select <literal>File -> Open URL</literal>.</para> |
|
165 | 165 | on another folder or resource by mistake, you overwrite the wrong resource. </para> |
166 | 166 | </warning> |
167 | 167 | </sect2> |
168 | | - |
| 168 | + |
169 | 169 | <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
170 | | - |
| 170 | + |
| 171 | + <sect2> |
| 172 | + <title>davfs2</title> |
| 173 | + <para>Recent eXist versions present by default, through WebDAV, the size of XML documents as a multiple of internal pagesize. |
| 174 | + This approximated size is not managed correctly by davfs2. You can list XML files (<code>ls -l</code>) but you cannot |
| 175 | + view or edit them. All other file types (plain text files, images, etc) are working as expected with davfs2. |
| 176 | + </para> |
| 177 | + <para>The following message is found in davfs2 logs (syslog/journalctl) : |
| 178 | + <errortext>Could not read response body: connection was closed by server</errortext> |
| 179 | + </para> |
| 180 | + <para> |
| 181 | + In order to access XML files stored in eXist from |
| 182 | + a mounted directory in a filesystem thanks to dafvs2, you have to add the following additional Java parameters |
| 183 | + when starting eXist : </para> |
| 184 | + |
| 185 | + <itemizedlist> |
| 186 | + <listitem><para><literal>org.exist.webdav.PROPFIND_METHOD_XML_SIZE=EXACT</literal></para></listitem> |
| 187 | + <listitem><para><literal>org.exist.webdav.GET_METHOD_XML_SIZE=EXACT</literal></para></listitem> |
| 188 | + </itemizedlist> |
| 189 | + |
| 190 | + <para>Please note that if eXist is installed as a service (systemd) the configuration has to be done in <filename>/tools/yajsw/conf/wrapper.conf</filename></para> |
| 191 | + |
| 192 | + <programlisting xlink:href="listings/listing-2.txt"/> |
| 193 | + |
| 194 | + <note><para><literal>NULL</literal> and <literal>APPROXIMATE</literal> values work for Oxygen and Cadaver but only <literal>EXACT</literal> can be used if davfs2 is needed.</para></note> |
| 195 | + |
| 196 | + <para>These changes won't be taken into account if you do not uninstall the service <emphasis role="bold">before</emphasis> |
| 197 | + modifying <filename>wrapper.conf</filename>. The service must then be reinstalled : |
| 198 | + </para> |
| 199 | + |
| 200 | + <orderedlist> |
| 201 | + <listitem> |
| 202 | + |
| 203 | + <para>Uninstall (with service name <emphasis>eXist-db</emphasis>)</para> |
| 204 | + |
| 205 | + <programlisting xlink:href="listings/listing-3.txt"/> |
| 206 | + |
| 207 | + </listitem> |
| 208 | + <listitem> |
| 209 | + |
| 210 | + <para>Reinstall and enable</para> |
| 211 | + |
| 212 | + <programlisting xlink:href="listings/listing-4.txt"/> |
| 213 | + |
| 214 | + </listitem> |
| 215 | + </orderedlist> |
| 216 | + |
| 217 | + <note><para>Tested on davfs2 1.4.7 on RHEL7.5 and 1.5.4 on Arch Linux.</para></note> |
| 218 | + |
| 219 | + </sect2> |
| 220 | + |
| 221 | + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
| 222 | + |
171 | 223 | <sect2 xml:id="kde"> |
172 | 224 | <title>KDE Konqueror</title> |
173 | | - |
| 225 | + |
174 | 226 | <para>Enter an URL like <literal>webdav://localhost:8080/exist/webdav/db</literal>. Use |
175 | 227 | <literal>webdavs://</literal> for WebDAV over SSL. </para> |
176 | 228 | <informalfigure> |
|
181 | 233 | </mediaobject> |
182 | 234 | </informalfigure> |
183 | 235 | </sect2> |
184 | | - |
| 236 | + |
185 | 237 | <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> |
186 | | - |
| 238 | + |
187 | 239 | <sect2 xml:id="libreoffice"> |
188 | 240 | <title>LibreOffice</title> |
189 | | - |
| 241 | + |
190 | 242 | <para>For LibreOffice and OpenOffice.org the recommended way for opening documents stored in |
191 | 243 | eXist-db is using the 'native' WebDAV client, as documented in the <link xlink:href="http://help.libreoffice.org/Common/Opening_a_Document_Using_WebDAV_over_HTTPS" condition="_blank">LibreOffice Help</link> documentation.</para> |
192 | 244 | <warning> |
|
216 | 268 | </informalfigure> |
217 | 269 | </sect2> |
218 | 270 | </sect1> |
219 | | - |
| 271 | + |
220 | 272 | <!-- ================================================================== --> |
221 | | - |
| 273 | + |
222 | 274 | <sect1 xml:id="serialization"> |
223 | 275 | <title>Serialization</title> |
224 | | - |
| 276 | + |
225 | 277 | <para> When retrieving an XML document via the WebDAV interface, the default serialization |
226 | 278 | settings as defined in <link xlink:href="configuration.xml#conf.xml">conf.xml</link> are used. It is however possible to |
227 | 279 | define custom serialization settings specific for the WebDAV interface. </para> |
228 | 280 | <para> Copy the file <literal>extensions/webdav/webdav.properties</literal> into |
229 | 281 | <literal>$EXIST_HOME</literal> directory and uncomment/modify the parameters. Changes in |
230 | 282 | this file requires a restart of eXist-db. </para> |
231 | | - |
| 283 | + |
232 | 284 | <programlisting language="xml" xlink:href="listings/listing-1.txt"/> |
233 | 285 | </sect1> |
234 | | - |
| 286 | + |
235 | 287 | <!-- ================================================================== --> |
236 | | - |
| 288 | + |
237 | 289 | <sect1 xml:id="notes"> |
238 | 290 | <title>Notes</title> |
239 | | - |
| 291 | + |
240 | 292 | <para> From the <link xlink:href="https://github.com/eXist-db/exist/issues/1442" condition="_blank">community</link> we have received feedback that the WebDAV interface is not fully |
241 | 293 | functional when it is accessed via a reverse proxy and a resource's path is altered (aliased) |
242 | 294 | with it. </para> |
|
0 commit comments