Tax*_*Noi 16 java icalendar caldav
我在我的数据库中保存了一组事件(一个非常特殊的数据库,所以我不能使用一些流行的开源服务器,比如MySQL).现在我想构建一个CalDav服务器(通过Java),以便用户可以将他的日历客户端连接到它以检索或修改事件.我是新手,所以有很多问题,希望你们能帮助我.
一般步骤是什么?
我需要提供servlet吗?如果是,那么我必须为请求返回什么?一个JSON或XML或.ics文件?
当用户订阅我的日历时,这是否意味着他的客户端将在一段时间后拉出我的服务器(调用servlet).
更新:这是一个1岁的问题,因为我第一次问,但我得到了一些赞成,所以我不得不提供一些信息:我最终使用了Milton库http://milton.io/,它抽象了servlet ,你只需编写函数来返回数据.图书馆的作者非常有帮助和信息丰富.最终结果:我们的caldav服务器已经运行.
我也接受埃弗特的回答.
让我试一试;-)
如Evert所述,您需要实现CalDAV服务器.根据您要支持什么功能,这是不平凡的,并要求相关规范(RFC的iCalendar和5545的CalDAV 4791,RFC的WebDAV 4918)的理解.
实施CalDAV服务器的一般步骤是什么?您需要HTTP入口点:
a)提供帐户信息(在WebDAV中称为委托人),这包括帐户的日历在哪个URL下
b)提供日历列表(称为日历主页,来自a的主要信息)指向此)
c)提供实际日历,即其中包含的事件.CalDAV日历是'iCalendar'资源的特殊WebDAV集合.iCalendar是表示事件的格式.
根据您要支持的CalDAV功能,这可能更复杂(例如,服务器端调度).有更快的同步(同步报告)或上传等优化.您不需要全部启动.
正如Evert所说,如何实现HTTP端点是您的选择.Servlet是一个可行的选择.主要信息,日历列表和日历中项目的URL在(WebDAV)XML(多状态响应)中返回.事件的实际内容需要以iCalendar(.ics)格式返回.
是.
一些CalDAV实现也支持Push(服务器可以在新数据可用时告诉客户端),但是这还没有标准化,并且实现方式也有很大差异.如果您的服务器实现CTag和同步报告(RFC 6578),则可以快速保持轮询.
阅读 RFC: https://www.rfc-editor.org/rfc/rfc4791
不只是一遍,至少要从头到尾读四遍。
除此之外,您可能还应该阅读 WebDAV、WebDAV ACL 和 iCalendar 的 RFC。
您在这里得到的任何答案都将是对其中内容的重复,并且尝试简化它是相当徒劳的,因为您确实需要充分理解大部分规范。
具体回答你的问题: