Jetty の接続プールから Talkdesk のデータ に接続
CData JDBC Driver for Talkdesk は、Java Web アプリケーションへの統合が簡単です。この記事では、接続プールを設定することで Jetty から Talkdesk のデータ に効率的に接続する方法を説明します。Jetty で Talkdesk 用の JNDI リソースを設定していきましょう。
Talkdesk 用の JDBC Driver を JNDI データソースとして設定
以下のステップで Jetty から Talkdesk に接続します。
Jetty ベースで JNDI モジュールを有効にします。次のコマンドは、コマンドラインから JNDI を有効にします。
java -jar ../start.jar --add-to-startd=jndi- インストールディレクトリの lib サブフォルダにある CData およびライセンスファイルを、コンテキストパスの lib サブフォルダに追加します。
-
リソースとそのスコープを宣言します。リソース宣言に必要な接続プロパティを入力します。次の例では、WEB-INF\jetty-env.xml に Web アプリレベルで Talkdesk データソースを宣言しています。
<Configure id='talkdeskdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="talkdeskdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="talkdeskdemo"/></Arg> <Arg>jdbc/talkdeskdb</Arg> <Arg> <New class="cdata.jdbc.talkdesk.TalkdeskDriver"> <Set name="url">jdbc:talkdesk:</Set> <Set name="AccountName">myAccount</Set> <Set name="Region">US</Set> <Set name="OAuthClientId">myClientId</Set> <Set name="OAuthClientSecret">myClientSecret</Set> </New> </Arg> </New> </Configure>Talkdesk では OAuth 2.0 の Client Credentials グラントを使用します。ブラウザでの認可ステップやコールバック URL は必要ありません。
以下の接続プロパティを設定します。
- AccountName:Talkdesk アカウントの名前。
- Region:Talkdesk インスタンスがデプロイされているリージョン。指定できる値は US(デフォルト)、EU、CA、AU、UK、FedRamp です。
- OAuthClientId:カスタム OAuth アプリケーションの登録時に割り当てられた Client Id。
- OAuthClientSecret:カスタム OAuth アプリケーションに割り当てられた Client Secret。
カスタム OAuth アプリケーションの作成
- Talkdesk アカウントにログインし、ナビゲーションメニューから OAuth Clients を選択します。
- Create OAuth Client をクリックし、クライアントにわかりやすい名前を付けます。
- Grant Type を Client Credentials に設定します。
- Add scopes をクリックし、アクセスしたいデータに応じたスコープを選択します。
- Create をクリックし、Client Id と Client Secret をコピーします。
接続時、ドライバーは Talkdesk にアクセストークンを自動でリクエストしてキャッシュし、有効期限が切れると更新します。アプリケーションで選択したスコープが、クエリ予定のビューに対応していることを確認してください。対応していない場合、トークンのリクエストが失敗することがあります。
-
Web.xml でリソースを設定します。
jdbc/talkdeskdb javax.sql.DataSource Container -
これで、java:comp/env/jdbc/talkdeskdb をルックアップして Talkdesk にアクセスできます。
InitialContext ctx = new InitialContext(); DataSource mytalkdesk = (DataSource)ctx.lookup("java:comp/env/jdbc/talkdeskdb");
Jetty 統合の詳細
上記のステップでは、シンプルな接続プールのシナリオでドライバーを設定する方法を説明しました。その他のユースケースや詳細については、Jetty ドキュメントのWorking with Jetty JNDI の章を参照してください。