18

データベースに一連のイベントが保存されています (非常に特殊なデータベースなので、MySQL などの一般的なオープンソース サーバーを使用することはできません)。ここで、ユーザーが自分のカレンダー クライアントを接続してイベントを取得または変更できるように、CalDav サーバーを (Java で) 構築したいと考えています。私はこれに慣れていないので、多くの質問があります。皆さんが私を助けてくれることを願っています。

  1. 一般的な手順は何ですか?

  2. サーブレットを提供する必要がありますか? はいの場合、リクエストに対して何を返さなければなりませんか? JSON または XML または .ics ファイルですか?

  3. ユーザーが私のカレンダーを購読すると、そのクライアントは間隔を置いて私のサーバーをプルする (サーブレットを呼び出す) ことを意味しますか?

更新:これは最初に質問してから 1 年前の質問ですが、かなりの賛成票を獲得したので、情報を提供する義務があります: Milton ライブラリhttp://milton.io/を使用することになり、サーブレットを抽象化します、データを返す関数を書くだけです。ライブラリの作成者は非常に有益で有益です。最終結果: Caldav サーバーが機能しました。

私もエバートの答えを受け入れます。

4

2 に答える 2

4

RFCを読む: https ://www.rfc-editor.org/rfc/rfc4791

一度だけではなく、少なくとも上から下に4回読みたいと思うでしょう。

それ以上に、WebDAV、WebDAV ACL、およびiCalendarのRFCも読む必要があります。

ここで得られる答えは、そこにあるものの繰り返しであり、仕様のほとんどを完全に理解する必要があるため、これを単純化しようとするのはかなり無駄です。

あなたの質問に具体的に答えるには:

  1. 完全に曖昧すぎて答えられません。一般的な手順では、仕様を理解し、サーバーを作成する必要があります。詳細をお勧めします。
  2. HTTPリクエストに応答できるものが必要です。それがサーブレットなのか他のものなのかはそれほど重要ではありません。CalDAVはHTTPの拡張機能です。XMLレポートはメタ情報として返され、iCalendarは実際のカレンダーデータのデフォルト形式です。多くのhttpリクエストでは、iCalendarはxml本体でラップされています。最近、サーバーもxCalとjCalをサポートし始めています。後者の2つはオプションであり、iCalendarをサポートしている必要があります。
  3. 通常、クライアントが定義した間隔でポーリングします。pub-subメカニズムはありますが、現在、それらの標準はなく、さまざまな実装があります。このための標準的なトランスポートが検討され始めていますが、完了するまでに時間がかかる場合があります。(年)
于 2013-03-12T14:36:41.903 に答える