Jetty の接続プールから SAP Ariba Procurement のデータ に接続
CData JDBC Driver for SAP Ariba Procurement は、Java Web アプリケーションへの統合が簡単です。この記事では、接続プールを設定することで Jetty から SAP Ariba Procurement のデータ に効率的に接続する方法を説明します。Jetty で SAP Ariba Procurement 用の 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 Procurement データソースを宣言しています。
<Configure id='saparibaprocurementdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="saparibaprocurementdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="saparibaprocurementdemo"/></Arg> <Arg>jdbc/saparibaprocurementdb</Arg> <Arg> <New class="cdata.jdbc.saparibaprocurement.SAPAribaProcurementDriver"> <Set name="url">jdbc:saparibaprocurement:</Set> <Set name="ANID">AN02000000280</Set> <Set name="API">PurchaseOrdersBuyerAPI-V1</Set> <Set name="APIKey">wWVLn7WTAXrIRMAzZ6VnuEj7Ekot5jnU</Set> <Set name="AuthScheme">OAuthClient</Set> </New> </Arg> </New> </Configure>それでは、SAP Ariba Procurement に接続していきましょう。接続するには、以下のプロパティを設定します。
- ANID:Ariba Network ID
- API:CData 製品にSAP Ariba データを取得させたいAPI を指定してください。ビジネスロールに基づき、Buyer またはSupplier API を選択します(可能な値は、PurchaseOrdersBuyerAPIV1、または PurchaseOrdersSupplierAPIV1 です)
- Environment:接続先がテスト環境か本番環境かを指定してください(可能な値は、TEST またはPRODUCTION です)
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/saparibaprocurementdb javax.sql.DataSource Container
-
これで、java:comp/env/jdbc/saparibaprocurementdb をルックアップして SAP Ariba Procurement にアクセスできます。
InitialContext ctx = new InitialContext(); DataSource mysaparibaprocurement = (DataSource)ctx.lookup("java:comp/env/jdbc/saparibaprocurementdb");
Jetty 統合の詳細
上記のステップでは、シンプルな接続プールのシナリオでドライバーを設定する方法を説明しました。その他のユースケースや詳細については、Jetty ドキュメントのWorking with Jetty JNDI の章を参照してください。