Jetty の接続プールから SAP Ariba Source のデータ に接続
CData JDBC Driver for SAP Ariba Source は、Java Web アプリケーションへの統合が簡単です。この記事では、接続プールを設定することで Jetty から SAP Ariba Source のデータ に効率的に接続する方法を説明します。Jetty で SAP Ariba Source 用の JNDI リソースを設定していきましょう。
Salesforce 用の JDBC Driver を JNDI データソースとして設定
以下のステップで Jetty から Salesforce に接続します。
Jetty ベースで JNDI モジュールを有効にします。次のコマンドは、コマンドラインから JNDI を有効にします。
java -jar ../start.jar --add-to-startd=jndi
- インストールディレクトリの lib サブフォルダにある CData およびライセンスファイルを、コンテキストパスの lib サブフォルダに追加します。
-
リソースとそのスコープを宣言します。リソース宣言に必要な接続プロパティを入力します。次の例では、WEB-INF\jetty-env.xml に Web アプリレベルで SAP Ariba Source データソースを宣言しています。
<Configure id='saparibasourcedemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="saparibasourcedemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="saparibasourcedemo"/></Arg> <Arg>jdbc/saparibasourcedb</Arg> <Arg> <New class="cdata.jdbc.saparibasource.SAPAribaSourceDriver"> <Set name="url">jdbc:saparibasource:</Set> <Set name="API">SupplierDataAPIWithPagination-V4</Set> <Set name="APIKey">wWVLn7WTAXrIRMAzZ6VnuEj7Ekot5jnU</Set> <Set name="Environment">SANDBOX</Set> <Set name="Realm">testRealm</Set> <Set name="AuthScheme">OAuthClient</Set> </New> </Arg> </New> </Configure>それでは、SAP Ariba Source に接続していきましょう。接続するには、以下のプロパティを設定します。
- API:CData 製品にSAP Ariba データを取得させたいAPI を指定してください。ビジネスロールに基づき、Supplier、Sourcing Project Management、またはContract API を選択します(可能な値は、SupplierDataAPIWithPaginationV4、SourcingProjectManagementAPIV2、または ContractAPIV1 です)
- DataCenter:アカウントのデータがホストされているデータセンター
- Realm:アクセスしたいサイト名
- Environment:テスト環境、または本番環境のいずれかを指定してください。(可能な値は、TEST またはPRODUCTION)
Supplier Data API またはContract API に接続する場合は、さらに以下のプロパティも設定してください。
- User:API 呼び出しを行うユーザーのId
- PasswordAdapter:認証するUser に関連付けられたパスワード
Supplier API に接続している場合は、ProjectId をデータを取得したいソーシングプロジェクトのId に設定してください。
OAuth 認証
続いて、接続プロパティを設定した後、認証のためにOAuth 接続を設定する必要があります。
- AuthScheme をOAuthClient に設定します
- サービスにアプリケーションを登録し、APIKey、OAuthClientId、およびOAuthClientSecret を取得する必要があります
OAuth アプリケーションの作成について、詳しくはヘルプドキュメントをご確認ください。
OAuth の自動リフレッシュ
以下のプロパティを設定して、接続してみましょう。
- APIKey:アプリケーション設定のApplication key
- OAuthClientId:アプリケーション設定のOAuth Client Id
- OAuthClientSecret:アプリケーション設定のOAuth Secret
接続すると、CData 製品が自動でOAuth プロセスを完了します。
- CData 製品がSAP Ariba からアクセストークンを取得し、それを使ってデータをリクエストします
- CData 製品がアクセストークンの期限が切れると自動的にリフレッシュします
- OAuth 値はOAuthSettingsLocation で指定された場所に基づいてメモリに保存されます
-
Web.xml でリソースを設定します。
jdbc/saparibasourcedb javax.sql.DataSource Container
-
これで、java:comp/env/jdbc/saparibasourcedb をルックアップして SAP Ariba Source にアクセスできます。
InitialContext ctx = new InitialContext(); DataSource mysaparibasource = (DataSource)ctx.lookup("java:comp/env/jdbc/saparibasourcedb");
Jetty 統合の詳細
上記のステップでは、シンプルな接続プールのシナリオでドライバーを設定する方法を説明しました。その他のユースケースや詳細については、Jetty ドキュメントのWorking with Jetty JNDI の章を参照してください。