CData Software Blog

クラウド連携のCData Software の技術ブログです。

Payara ServerからOffice 365に接続する方法

こんにちは。CData Software Japanエンジニアの浦邊です。

本記事ではCData Office365 JDBC Driverを利用し、Payara ServerからOffice365への接続を作成する方法を紹介します。

Payara Server

Payara ServerはGlassFish Serverのオープンソース版から派生したJava EE準拠のアプリケーションサーバーです。 Java EEJDBC APIを介してデータベースとのJDBC接続が利用できます。 今回はCData Office 365 JDBC Driverを利用し、JDBC APIからOffice 365のデータにアクセスします。

www.payara.fish

Office 365のOAuth認証方式の選択

通常、デスクトップのアプリケーションでOffice 365へアクセスする際にはブラウザを通してOAuthトークンを取得します。 今回のケースではクライアントからPayara サーバーにアクセスした時にサーバ上でOAuth認証を行うため、ブラウザを開かないで認証を行う必要があります。

これの実現方法としてドライバのヘルプには下記3つの方法が紹介されています。

  1. カスタムOAuth アプリを作成
  2. Verifier code を取得
  3. OAuth 設定を転送

今回は「1. カスタムOAuth アプリを作成」する方法で接続しました。 カスタムOAuthアプリの作成方法については以下の記事を参考にしてください。

www.cdatablog.jp

Payara Serverサーバマシン上での設定

はじめにPayara Serverのサーバマシン上にOffice 365へアクセスするためのJDBCドライバをインストールします。

CData Office365 JDBC Driverのインストール

CData Software Japan社のCData Office365 JDBC Driverダウンロードページにアクセスしてください。 ダウンロードページの「評価版」をクリックすると必要事項入力画面が表示されます。

f:id:urabe_shintaro:20200605131847p:plain

必要事項を入力し、「ダウンロード」をクリックするとCData Office365 JDBC Driver評価版のインストーラがダウンロードされます。 ダウンロードしたファイルをダブルクリックするとインストーラが起動しますので、ウィザードに従ってインストールしてください。 途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。 ライセンスサーバにアクセス出来ないネットワーク環境の場合は、CData Software Japan テクニカルサポートまでお問い合わせください。

JDBCドライバの配置

インストールしたドライバのライブラリファイルとライセンスファイルをPayaraのライブラリフォルダにコピーします。

対象ファイル

<CDataドライバのインストールフォルダ>\libにある以下二つのファイルをコピーします。

  • cdata.jdbc.office365.jar
  • cdata.jdbc.office365.lic

<CDataドライバのインストールフォルダ>のデフォルトは以下のパスです。

C:\Program Files\CData\CData JDBC Driver for Office 365 2019J

コピー先

上の二つのファイルを以下のフォルダにコピーしてください。

C:\payara5\glassfish\domains\production\lib\ext

Payara Serverの設定

インストールしたJDBCドライバをPayara Serverで利用可能にする設定を行います。 Payara Serverの管理コンソールを開いてログインしてください。

f:id:urabe_shintaro:20200605131912p:plain

JDBC接続プールの作成

メニューのツリーから「リソース」を開き、「JDBC」の下にある「JDBC接続プール」を選択しJDBC接続プール画面を開きます。 この画面が開いたら「新規」をクリックしてください。

f:id:urabe_shintaro:20200605131924p:plain

「新規JDBC接続プール」作成ウィザードが開きます。 「プール名」に任意の名称を入力、「リソース・タイプ」に「java.sql.Driver」を選択し、「次」をクリックしてください。

f:id:urabe_shintaro:20200605131935p:plain

次の画面で「ドライバ・クラス名」に「cdata.jdbc.office365.Office365Driver」と入力してください。

f:id:urabe_shintaro:20200605131947p:plain

下にスクロールすると追加プロパティを設定する欄があります。 ここで「プロパティの追加」をクリックしてプロパティを追加し、以下の値を入力してください。

  • 名前:「URL」
  • 値:JDBCの接続文字列

一般的な接続文字列は以下のような形式になります。

jdbc:office365:InitiateOAuth=GETANDREFRESH;OAuthClientId=<クライアントID>;OAuthClientSecret=<クライアントシークレット>;CallbackURL=<コールバックURL>;URL="";

接続文字列に「URL=""」を追加することに注意してください。

f:id:urabe_shintaro:20200605132012p:plain

最後に「保存」をクリックして接続プールを保存してください。

接続文字列に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が成功しました」と表示されれば接続設定は成功です。

f:id:urabe_shintaro:20200605132023p:plain

おわりに

本記事ではCData Office365 JDBC Driverを利用し、Payara ServerからOffice365への接続を作成する方法を紹介しました。 CData JDBC Driversを利用することで、Payara ServerとOffice 365を含む200を超えるクラウドサービスへの接続がノーコードで実現できます。

f:id:urabe_shintaro:20200131184240p:plain

CData JDBC Driversは30日間の評価版を無料でご利用頂けます。 Payara Serverとクラウドサービスとのデータ連携をご検討の方はぜひお試しください。