こんにちは。CData Software Japanエンジニアの浦邊です。
本記事ではCData Office365 JDBC Driverを利用し、Payara ServerからOffice365への接続を作成する方法を紹介します。
Payara Server
Payara ServerはGlassFish Serverのオープンソース版から派生したJava EE準拠のアプリケーションサーバーです。 Java EEのJDBC APIを介してデータベースとのJDBC接続が利用できます。 今回はCData Office 365 JDBC Driverを利用し、JDBC APIからOffice 365のデータにアクセスします。
Office 365のOAuth認証方式の選択
通常、デスクトップのアプリケーションでOffice 365へアクセスする際にはブラウザを通してOAuthトークンを取得します。 今回のケースではクライアントからPayara サーバーにアクセスした時にサーバ上でOAuth認証を行うため、ブラウザを開かないで認証を行う必要があります。
これの実現方法としてドライバのヘルプには下記3つの方法が紹介されています。
- カスタムOAuth アプリを作成
- Verifier code を取得
- OAuth 設定を転送
今回は「1. カスタムOAuth アプリを作成」する方法で接続しました。 カスタムOAuthアプリの作成方法については以下の記事を参考にしてください。
Payara Serverサーバマシン上での設定
はじめにPayara Serverのサーバマシン上にOffice 365へアクセスするためのJDBCドライバをインストールします。
CData Office365 JDBC Driverのインストール
CData Software Japan社のCData Office365 JDBC Driverダウンロードページにアクセスしてください。 ダウンロードページの「評価版」をクリックすると必要事項入力画面が表示されます。
必要事項を入力し、「ダウンロード」をクリックするとCData Office365 JDBC Driver評価版のインストーラがダウンロードされます。 ダウンロードしたファイルをダブルクリックするとインストーラが起動しますので、ウィザードに従ってインストールしてください。 途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。 ライセンスサーバにアクセス出来ないネットワーク環境の場合は、CData Software Japan テクニカルサポートまでお問い合わせください。
JDBCドライバの配置
インストールしたドライバのライブラリファイルとライセンスファイルをPayaraのライブラリフォルダにコピーします。
対象ファイル
<CDataドライバのインストールフォルダ>\libにある以下二つのファイルをコピーします。
<CDataドライバのインストールフォルダ>のデフォルトは以下のパスです。
C:\Program Files\CData\CData JDBC Driver for Office 365 2019J
コピー先
上の二つのファイルを以下のフォルダにコピーしてください。
C:\payara5\glassfish\domains\production\lib\
Payara Serverの設定
インストールしたJDBCドライバをPayara Serverで利用可能にする設定を行います。 Payara Serverの管理コンソールを開いてログインしてください。
JDBC接続プールの作成
メニューのツリーから「リソース」を開き、「JDBC」の下にある「JDBC接続プール」を選択しJDBC接続プール画面を開きます。 この画面が開いたら「新規」をクリックしてください。
「新規JDBC接続プール」作成ウィザードが開きます。 「プール名」に任意の名称を入力、「リソース・タイプ」に「java.sql.Driver」を選択し、「次」をクリックしてください。
次の画面で「ドライバ・クラス名」に「cdata.jdbc.office365.Office365Driver」と入力してください。
下にスクロールすると追加プロパティを設定する欄があります。 ここで「プロパティの追加」をクリックしてプロパティを追加し、以下の値を入力してください。
- 名前:「URL」
- 値:JDBCの接続文字列
一般的な接続文字列は以下のような形式になります。
jdbc:office365:InitiateOAuth=GETANDREFRESH;OAuthClientId=<クライアントID>;OAuthClientSecret=<クライアントシークレット>;CallbackURL=<コールバックURL>;URL="";
接続文字列に「URL=""」を追加することに注意してください。
最後に「保存」をクリックして接続プールを保存してください。
接続文字列にURL=""を追加する理由
上で示したように、PayaraでJDBCを利用するには「URL」というプロパティを追加してJDBC URLを設定します。 一方CData Office365 JDBC Driverにも「URL」というプロパティが存在します。 PayaraでURLプロパティを設定すると、その値がJDBC DriverのURLプロパティにも反映される仕様になっており、 この仕様により「PayaraのURLプロパティ」に接続文字列を設定すると、当該接続文字列が「JDBC DriverのURLプロパティ」に反映されてしまいます。 「JDBC DriverのURLプロパティ」は設定されたURL文字列の形式チェック(http://~)を行うため、「jdbc:~」で始まる接続文字列が設定されるとエラーになります。
ここで、接続文字列にURLプロパティを設定すると、当該URLプロパティが「JDBC DriverのURLプロパティへ反映されたPayaraのURLプロパティ」を上書きします。 これにより、接続文字列に「URL=""」を追加することで、接続文字列が「JDBC DriverのURLプロパティ」に反映されることによるエラーを防ぐことができます。
接続の確認
作成した接続プールを選択し、「JDBC接続プールの編集」画面を開きます。 「Ping」をクリックし、下図のように「pingが成功しました」と表示されれば接続設定は成功です。
おわりに
本記事ではCData Office365 JDBC Driverを利用し、Payara ServerからOffice365への接続を作成する方法を紹介しました。 CData JDBC Driversを利用することで、Payara ServerとOffice 365を含む200を超えるクラウドサービスへの接続がノーコードで実現できます。
CData JDBC Driversは30日間の評価版を無料でご利用頂けます。 Payara Serverとクラウドサービスとのデータ連携をご検討の方はぜひお試しください。