Есть связка приложение на java,spring, реализовываю функционал позволяющий из приложения по клику на ссылку документа(.../webdav/id/document_name.odt) открыть документ в libreoffice, отредактировать документ и после сохранения записать его в нашу бд.
На данный момент работает открытие документа. Как это происходит, со стороны сервера написан простой сервлет(https://www.mulesoft.com/tcat/tomcat-webdav step-1) который обрабатывает запросы отсылаемые libreoffice-ом серверу(PROPFIND,OPTIONS,GET), когда сервер получает запрос PROPFIND в ответ пишу XML
<multistatus xmlns="DAV:">
<response>
<href>http://localhost:8080/julia/webdav/287/TI-5-1.odt</href>
<propstat>
<prop>
<resourcetype/>
<getcontenttype>application/vnd.oasis.opendocument.text</getcontenttype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<IsReadOnly/>
<supportedlock/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
когда получаем GET пишем в ответе сам файл(byte[]) из бд. когда получаем OPTIONS в ответ пишем вот такие заголовки: "DAV", "1, 2, ordered-collections" "Allow", "OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, ORDERPATCH" "MS-Author-Via", "DAV" После этого офис открывает наш файл и мы можем его редактировать.
Так вот сама проблема, если отредактировать файл в либреофисе и попытаться его сохранить, на сервер НЕ приходит PUT или POST запрос с данными изменённого в либроофисе документа, приходят только запросы PROPFIND, OPTIONS, HEAD
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим, есть класс, реализующий некий интерфейсГде лучше писать комментарии к методам: в классе или в интерфейсе, или же и там, и там? Есть...
что обозначает строка Scanner lineScan = new Scanner(line);?