こちらのサンプルプログラムは Java 9 以降では動作しません。
Garoon と Google Calendar とを連携させたい場合は、株式会社ノベルワークスのカレンダー連携ソリューション ガル助(有償)の利用をご検討ください。
本サンプルプログラムとの大きな違いは次のとおりです。
・Google Calendar だけでなく、Office 365 とも連携が可能
・双方向連携が可能
・複数ユーザーのスケジュール同期が可能
(著者:サイボウズ 竹内 能彦)
はじめに
Googleカレンダー使っていますか?自分の予定と他の方の予定を並べて表示したり、予定を共有したり出来てとっても便利ですよね。
そこにGaroonの予定を並べて見られたらもっと便利になると思いませんか?
そんな思い付きからGaroonの予定をGoogleカレンダーに表示する連携プログラムを作成しました。事前準備が少し大変ですが、皆さん是非使ってみてください。
概要
連携プログラムは以下の処理をコマンドラインから実行できるサンプルプログラムです。
- Garoonに登録された予定をGoogleカレンダーに登録
- Garoonで更新された予定をGoogleカレンダーに反映
- Garoonから削除された予定をGoogleカレンダーから削除
Googleカレンダーに登録する情報はGaroonの予定の「開始日時」、「終了日時」、「施設」、「メモ」、「コメント」、「参加者」です。
動作環境
- プログラム実行用端末(Java8が動作し、Garoon、Googleカレンダーにネットワーク接続できること)
2018年3月現在、Java9では動作しないことを確認しています。 - Garoon on cybozu、パッケージ版 サイボウズ ガルーン3.0.0以降
- Googleカレンダー
Garoon on cybozu、Googleカレンダーは2018年2月版で確認しています。
事前準備
実行するには連携プログラムの設定だけでなく、GoogleアカウントやGoogleカレンダーの設定が必要になります。
また、GoogleアカウントやGoogleカレンダーの設定内容を連携プログラムの設定に利用するため、メモが必要な項目はその都度注釈を入れてあります。
※現在のGGsyncはOAuth2.0にも対応していますが、本ページではサービスアカウントキー認証を利用します。
1.Googleアカウント作成
下記URLから、Googleアカウントを作成します。Googleアカウントを取得済みの方はログインしてください。
https://accounts.google.com/SignUp
2.Google APIの利用設定
下記URLから、プロジェクトを作成します。
https://console.developers.google.com/project
プロジェクト名には適当な値を入力してください。
プロジェクトの作成完了後、Google Calendar APIを検索し、
Google Calendar APIを有効にします。
認証情報を作成します。
下記画像の通りの内容を選択し、「必要な認証情報」をクリックします。
サービスアカウント名には適当な値を入力し、キーのタイプはP12を選択します。
役割なしで作成します。
自動ダウンロードされたP12キー(以下、秘密鍵(拡張子がp12))は以降の手順で利用しますので任意のフォルダに保存します。
次にサービスアカウント IDを確認します。
画面右の「サービスアカウントの管理」をクリックし、
表示されたサービスアカウント IDをメモします。(以降の手順で利用します)
3.Googleカレンダーの作成
下記URLから、Garoonのスケジュールを連携させるGoogleカレンダーを作成します。
https://www.google.com/calendar
カレンダーの作成完了後、Googleカレンダー設定の「このカレンダーを共有」タブを開きます。先ほどのメールアドレスに予定の変更権限を付与し、保存します。
Googleカレンダー設定の「カレンダー情報」タブを開き、カレンダーIDを確認します。カレンダーIDは以降の手順で利用しますのでメモしてください。
4.連携プログラムの設定
プログラム実行用端末に連携プログラムを動作させるフォルダを作成します。本設定では例として「C:/GGsync」を利用します。
秘密鍵を「C:/GGsync」に移動します。
実行ファイルと設定ファイルをダウンロードしてください。ソースはGitHubで管理しています。(外部サイトが開きます)
実行ファイル「GGsync.jar」と設定ファイル「GGsync.properties」を「C:/GGsync」に移動します。
設定ファイル「GGsync.properties」をテキストエディタで開き、コメントに従い設定します。
Googleカレンダーに登録する予定の色は1から11までの数値を指定できます。下記の色を参考に選択してください。
各カラーIDのカラーコードはこちらのコメントから確認できます。
(tomomo85さん 情報ありがとうございます)
実行手順
プログラム実行用端末でコマンドプロンプトを起動し、以下のコマンドを入力します。
> java -jar C:/GGsync/GGsync.jar C:/GGsync
コマンドの形式は「 java -jar 実行ファイルのパス 設定ファイルが存在するフォルダ」です。
「The sync completed.」と表示されればスケジュール連携に成功しています。
実行結果は設定ファイルが存在するフォルダ配下のGGsync.db(例ではC:/GGsync/GGsync.db)に保存します。GGsync.dbは次回実行時の差分反映に利用します。
プロキシ経由の実行
プロキシを経由する必要がある場合は下記のオプションを追加して実行してください。
> java -Dhttp.proxyHost=ホスト名 -Dhttp.proxyPort=ポート番号 -Dhttps.proxyHost=ホスト名 -Dhttps.proxyPort=ポート番号 -jar C:/GGsync/GGsync.jar C:/GGsync
オプションの詳細はこちら(Oracle社のドキュメントページが開きます)
セキュアアクセス利用時の実行
セキュアアクセスを利用する必要がある場合は、クライアント証明書をGGsync.jarと同じディレクトリに保存し、下記のオプションを追加して実行してください。
> java -Djavax.net.ssl.keyStore=xxxx.pfx -Djavax.net.ssl.keyStorePassword=xxxx -Djavax.net.ssl.keyStoreType=PKCS12 -jar GGsync.jar .
実行例
下記がGaroonのスケジュール、実行結果、予定が反映されたGoogleカレンダーの例になります。
・Garoonのスケジュール
・連携プログラムの実行結果
・Googleカレンダー(プライベートな予定と並べて表示)
Garoonの予定の「メモ」、「コメント」はGoogleカレンダーの「説明」にまとめて登録します。
Garoonの予定が変更された場合は、Googleカレンダーの予定を削除してから再登録します。
下記が変更時の実行例になります。
Garoonの予定が削除された場合は、Googleカレンダーの予定を削除します。
下記が削除時の実行例になります。
定期実行
タスクスケジューラなどを利用することで、定期的にGaroonの予定をGoogleカレンダーに反映できます。
是非試してみてください。
連携プログラムの更新履歴
2015/3/30 繰り返し予定が正常に登録されない不具合を改修しました。
2015/4/24 終了時間未指定の予定がエラーになる不具合を改修しました。
2015/6/18 連携失敗時に詳細なエラーを出力するように修正しました。
2015/9/16 日本語文字のアカウント名に対応しました。
2016/1/14 Googleカレンダーに「参加者」を登録する機能を追加しました。
2016/3/24 ソースコードをGitHubに移しました。
2017/3/21 セキュアアクセス利用時の実行オプションを追記しました。
2017/9/21 ソースコードにライセンス表記を追加しました。
竹内様
ガルーンを社内イントラで使用しています。
・ガルーンのスケジュールをテキストファイルでダウンロード
・テキストファイルからGoogleカレンダーと同期
と、2ステップで利用することは可能でしょうか。
三上様
ガルーンのご利用ありがとうございます。
iCalを利用することで可能です。詳細は下記をご確認ください。
・iCalendarファイルに予定のデータを書き出す
https://help.cybozu.com/ja/g42/user/application/scheduler/icalendar.html
・Google カレンダーへの予定の読み込み
https://support.google.com/calendar/answer/37118?hl=ja
また、ガルーンの標準機能に関することですので今後は下記サポートにお問い合わせください。
電話でもご相談を承っております。
https://garoon.cybozu.co.jp/support/user_package/
初めてGGsyncを使用させていただこうと設定をしているのですが、
以下のようなエラーが発生して同期が終了しません。
原因は何が考えられますでしょうか。
①Proxyを使用しない場合
c:\>java -jar c:/GGsync/GGsync.jar c:/GGsync
ERROR 12:38:30 401 Unauthorized
com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenRe
sponseException.java:105)
②Proxyを使用した場合
C:\>java -Dhttp.proxyHost=IP -Dhttp.proxyPort=Port -Dhttps.proxyHo
st=IP -Dhttps.proxyPort=Port -jar c:/GGsync/GGsync.jar c:/GGsync
ERROR 12:38:30 401 Unauthorized
com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenRe
sponseException.java:105)
初歩的な問題かもしれませんが、ご確認のほどよろしくお願いいたします。
水口さん
GoogleCalendarの認証に失敗してそうです。
「Google APIの利用設定」の内容に間違いがないか再確認してみてください。(情報が古かったのでアップデートしてます)
初めまして。
下記エラーが出て進まない状況になってしまいました。
ご教示頂け内でしょうか・・・・
INFO 2017/05/17 15:17:46(GGsync:main:77) The sync beginning with normal mode.
ERROR 2017/05/17 15:17:47(GGsync:main:443) Transport error: 404 Error:
org.apache.axis2.AxisFault: Transport error: 404 Error:
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:396)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at com.cybozu.garoon3.common.CBServiceClient.sendReceive(CBServiceClient.java:172)
at com.cybozu.GGsync.main(GGsync.java:162)
坂下さん
私も以前同じようなメッセージのエラーで質問しましたので、外しているかもしれませんが
コメントさせて頂きます。
クライアントのパスワードの更新を定期的に行われているがGGsyncのPropertiesの方を
更新し忘れているといことはありませんか?
T2さん
コメント、ありがとうございます。
ガルーンのログインPWをシステム上更新していてGGsync.propertiesファイル内のPW部分を
更新していないかと言う事ですが、問題無く同じでございます。
GGsync.properties内のgaroon.passwordをコピーしてシステムログイン画面に貼り付けて
ログイン出来ましたので・・・
Linux版の2.1.3だと対応出来ないのでしょうか・・・
GGsync.propertiesのserver-nameはlinux環境なので
http://・・・・・・・・/cgi-bin/cbgrn/grn.cgi
としているのですが
坂下さん
2.1.3というのはガルーンのバージョンでしょうか。
本文の動作環境に記載してある通り、ガルーン 3.0.0以上が対象になります。
竹内さん
コメント、ありがとうございます。
すいません。動作環境、しっかり見ておりませんでした。
内容、承知しました。
ありがとうございました。
まさに自分が作ろうとしていたアプリです。
ありがとうございます。
1つだけ残念な点は、社内のグーグルアプリを使っているとカレンダーを共有して編集権限を付与できないことでした。
サイボウズさんの関係のないところですがね!
あらためてありがとうございます。
お世話になっております。
Googleカレンダーとの同期をしてみたい…
と思いこの記事を見つけたので、初心者ではありますが試しているところであります。
とりあえず手順通りに設定・実行してみましたが、下記のようなErrorが出ました。
これは何を意味しているのでしょうか。
恐れ入ります、ご教示くださいますようお願いいたします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
INFO 14:23:29 The sync beginning with normal mode.
log4j:WARN No appenders could be found for logger (org.apache.axis2.util.Loader).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoSuchMethodError: com.cybozu.garoon3.common.CBServiceClient.getApiVersion()Ljava/lang/Integer;
at com.cybozu.GGsync.main(GGsync.java:164)
C:\Users\user>
kasaiさん
以前追加した関数がないというエラーが出てますね・・・うーん
jarファイルを以下の物と置き換えてもエラー発生しますでしょうか。
https://developer.cybozu.io/hc/article_attachments/115004772283/GGsync.jar
これでも発生するとなると解決は難しいかもしれません。
竹内 様
お世話になっております。
URLよりダウンロードしたものを使用しましたが、同じエラーが出てしまいました。
初心者&勉強中なので、恐らくどこか私の設定にミスがあるのだと思います。
勉強してから再挑戦したいと思います!!
ご返答ありがとうございました。
Outlook用のシンクツールも欲しいです。
にしかわ様
いつもお世話になっております。
cybozu developer network 運営事務局です。
フィードバックいただきありがとうございます。
この記事の作者にお伝えしておきます。
引き続きよろしくお願いいたします。
はじめまして。当方まったくの初心者ですが、Garoonとgoogleの連携にチャレンジしております。
下記のエラーが出てしまいます。考えられる原因や対応などありましたらご教示下さいますと幸いです。
INFO 2017/10/24 13:46:55(GGsync:main:83) The sync beginning with normal mode.
ERROR 2017/10/24 13:46:58(GGsync:main:449) Transport error: 520 Error: Garoon Error
org.apache.axis2.AxisFault: Transport error: 520 Error: Garoon Error
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:396)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at com.cybozu.garoon3.common.CBServiceClient.sendReceive(CBServiceClient.java:178)
at com.cybozu.GGsync.main(GGsync.java:180)
y.shimizuさん
2017/5/17の書き込みと似ていますので、ガルーンのバージョンを追記された方が良いと思います。
T2さま
ありがとうございます。確かにそうですね。
当方、クラウド版を使用しております。
y.shimizuさん
Javaの実行環境からGaroonのスケジュール機能が利用可能でしょうか。
例えば以下のようなことが考えられます。
・スケジュールが使用停止になっている(これはないと思いますが)
・アプリケーションの利用ユーザーの設定で、Javaの実行環境からはスケジュール利用が許可されていない
https://garoon.cybozu.co.jp/support/whatsnew/package/171010.html#first-07
上記に該当しない場合は、解決は難しそうです。
竹内様
お世話になります。
1点質問なのですが、本ツールを利用してGmailに登録された予定について、
【sync.before.days=】で指定した日数が経過すると登録されたGmailの予定から削除されてしまうように見えます。
上記設定値の上限はありますか?
また、挙動として【sync.before.days=】や【sync.after.days=】に指定した値分、
ローカルのlogやdbに保存されるものだと思いますが、
長期間指定した場合に毎回期間分の予定を全なめするなど、過負荷になるような挙動になるものでしょうか?
最後に、Gmailに一度登録された過去の予定については削除されないような挙動はできないものでしょうか?
以上、よろしくお願い致します。
ゆうき様
お世話になります。
日数の指定ですが、プログラムでは上限を設けていません。
長期間指定すると負荷は重くなります。
スケジュール取得でガルーンの負荷が重くなり、差分チェックでローカルDBの負荷が重くなります。
Google側の予定を削除しない機能の実装予定はありません。
竹内様
初めまして.ガルーン4とグーグルカレンダーの同期方法を探して本サイトにたどり着きました.
まったくの素人ですが,本サイトに従い実行したところ,下記エラーとなりました.
お手数ですが,考えられる原因や対策についてご教示いただけますと幸いです.
INFO 2017/12/28 15:52:59(GGsync:main:83) The sync beginning with normal mode.
ERROR 2017/12/28 15:53:01(GGsync:main:449) Transport error: 302 Error: Found
org.apache.axis2.AxisFault: Transport error: 302 Error: Found
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:396)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at com.cybozu.garoon3.common.CBServiceClient.sendReceive(CBServiceClient.java:178)
at com.cybozu.GGsync.main(GGsync.java:168)
本日、このサイトに辿りついて同期設定が可能になりました。
そこで質問(要望)ですが、
1.予定メニューの非連携
予定メニューをgoogleカレンダーのタイトルに連携させない方法はありますでしょう
2.終日予定登録
0:00~23:59(終日)の予定をgoogleカレンダーの終日として登録する方法はありますか
素人的な質問で申し訳ありませんが、よろしくお願いします。
katmai様
おそらくですが、ガルーンサーバーの指定が正しくないようです。
GGsync.propertiesのgaroon.urlを見直してください。
ブラウザでアクセスしたときのURL前部と一致していますでしょうか。
ないとは思いますが、プロキシを経由している場合は記事本文に従いオプションを追加してください。
これでも発生するとなると解決は難しいかもしれません。
倉田様
ソースコードはGitHubにて公開していますので、そちらを編集すればどちらも対応可能です。
> 1.予定メニューの非連携
こちらは対応する予定はありません。
> 2.終日予定登録
こちらは対応しようとしたのですが、繰り返し予定や繰り返し予定の除外設定に
かなり影響があることがわかりました。そのため、現時点では保留しています・・・
googleカレンダーとの連携に挑戦している初心者ですが、2015/5/19のT2様のように連携ができません。
以下引用(タイトル・時間等は異なります)
------------------------------------------------------------------------------------
c:\GGsync>java -jar C:/GGsync/GGsync.jar C:/GGsync
INFO 14:35:24 The sync beginning with normal mode.
INFO 14:37:03 [ADD] Title:hoge
ERROR 14:37:24 connect timed out
java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
------------------------------------------------------------------------------------
その後、自分なりに調べてみたのですが、IEの設定が「自動構成スクリプトを使用する」となっており、そこから得たプロキシサーバーを使っているようです。
これが原因なのでしょうか?そうであるなら解決策はありますでしょうか?
環境はクラウド版です。ご教授お願いいたします。
Yasuhiro Miyata様
ご自身での調査ありがとうございます。
おそらくT2様と同じ原因でグーグルカレンダーへの接続がタイムアウトしています。
記事本文の項目「プロキシ経由の実行」に従い、オプションを追加してください。
竹内様
IEのインターネットオプション-接続-LANの設定-「自動構成スクリプトを構成する」にhttp://adsrvroot2.rad.xxxxxxx.co.jp/pac/proxy.pac (xは伏字)というアドレスが入っているのですが、
試しにここにアクセスすると「proxy.pac」というファイルが得られます。このファイルをメモ帳で開くと数種類のそれっぽいIPアドレスとポート番号が記載されています。
一部引用します。
---------------------------------------------------------------------------------------------------
function FindProxyForURL(url,host){
var MyIP = myIpAddress();
var ProxyDirectIWSS = "PROXY X.X.X.X:8008; PROXY X.X.X.X:8008";
var ProxyDirectIWSVA1 = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
var ProxyDirectIWSVA2 = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
// var ProxyDirectIWSVA2 = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
var ProxyISWM = "PROXY X.X.X.X:8080";
// var ProxyISWM = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
var ProxyNOISWM = "PROXY X.X.X.X:8080";
var FindIP = dnsResolve(host);
var CtrlFL = url.substring(url.lastIndexOf("."));
var LDBIP = MyIP.substr(MyIP.length-1)%2;
---------------------------------------------------------------------------------------------------
※Xは伏字です。それぞれアドレスは異なります。
ここにあるアドレスを表記すればよいのでしょうか?仮にそうだとするとこれは毎回変わってしまうアドレスであったりはしないのでしょうか?
竹内様
ご回答,ありがとうございます.
調べてみたところ,プロキシは使っていませんが,セキュアアクセスを利用しているみたいです.
そうなると,システム管理者からクライアント証明書とパスワードの入手が必要なのですよね,きっと...
せっかくなので,もう少し調べます.
Yasuhiro Miyata様
プロキシサーバーの設定がまとめられているファイルですね。
どのプロキシを選択すればよいかは情報システム部の担当者にご確認ください。
katmai様
そうですね。
クライアント証明書とパスワードが必要です。
入手できればですが、設定は本文の「セキュアアクセス利用時の実行」を参考にしてください。
非常に初心者的な質問で申し訳ありません。
同期ツールを以下環境でセットアップし、下記コマンドを実行しましたが、
「Exception in thread "main" java.lang.NoClassDefFoundError」で同期が開始されませんでした。
オプション設定やディレクトリ指定は誤っていなく、
classファイルをMac内で探しましたが.class拡張子のファイルがなく、
それ以降、どのようにしたらよいかわかりません。
どなたかヒントでも良いのでご指示いただけますと幸いです。
実行環境
・Mac OS X 10.11.6
・java 9.0.4
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
デバッグモード時実行したログ
SYS-Ebisu-0014:~ root# java -jar /Users/[username]/ggsync/GGsync.jar /Users/[username]/ggsync/
INFO 12:43:39 The sync beginning with debug mode.
DEBUG 12:43:39 グーグルカレンダーの認証方式: P12KEY
DEBUG 12:43:39 サービスアカウントのメールアドレス: ggsync@ggsync-192502.iam.gserviceaccount.com
DEBUG 12:43:39 サービスアカウントのP12キーファイルの絶対パス: /Users/[username]/ggsync/GGsync-c9da009323a5.p12
DEBUG 12:43:39 OAuth2のclient_idファイルの絶対パス:
DEBUG 12:43:39 OAuth2の認証情報保存先の絶対パス:
DEBUG 12:43:39 グーグルカレンダーID: kcgrp.jp_8fvl7k2m6rrm1mc791nk837a10@group.calendar.google.com
DEBUG 12:43:39 グーグルカレンダーに登録する通常予定の色: 5
DEBUG 12:43:39 グーグルカレンダーに登録する期間予定の色: 7
DEBUG 12:43:39 ガルーンのURL: http://grn.dooga.co.jp/cgi-bin/cbgrn/grn.cgi
DEBUG 12:43:39 ガルーンのアカウント: otani-nasuka
DEBUG 12:43:39 SYNC対象の開始時間: Wed Jan 17 12:43:39 JST 2018
DEBUG 12:43:39 SYNC対象の終了時間: Sun Jun 17 12:43:39 JST 2018
1月 18, 2018 12:43:39 午後 org.apache.axiom.util.stax.dialect.StAXDialectDetector detectDialectFromJarManifest
警告: Unable to load manifest for StAX implementation at jrt:/java.xml/
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
at org.apache.axiom.om.impl.builder.StAXBuilder.initParser(StAXBuilder.java:170)
以下略