SalesforceとJakarta EE(Tomcatを含む)との連携手法について

Tomcatを含むJakarta EE(旧Java EE)とSalesforceとの連携手法はいくつかあります。

Jakarta EEはJavaベースのエンタープライズアプリケーションプラットフォームであり、JavaのプログラムからSalesforceのAPIを利用することで連携が可能です。Jakarta EEにはTomcat以外の製品ではRed HatのJBoss, Oracle WebLogic, IBM WebSphereなどがあります。

連携の主要な手法 🤝

 

主な連携手法として、Salesforceが提供するAPIを利用するのが一般的です。Jakarta EE環境で動作するJavaアプリケーションから、これらのAPIを呼び出します。

  • REST API (推奨) 🌐
    • Salesforceのデータに対してCRUD(作成、読み取り、更新、削除)操作をHTTPリクエストを通じて実行する、現代的な連携方法です。
    • Jakarta EEアプリケーションでは、標準のHTTPクライアントライブラリ(例えばjava.net.http.HttpClientやサードパーティのライブラリ)を使用してRESTfulなリクエストを構築・送信します。
    • OAuth 2.0などの認証設定を行い、Salesforceへのアクセス権限を取得する必要があります。
  • SOAP API 📜
    • WSDL(Web Services Description Language)ファイルを使用してSOAPメッセージを交換する方式です。
    • SalesforceからWSDLをダウンロードし、Javaのツール(例:Apache CXF、JAX-WS)を使ってSOAPクライアントのスタブコードを生成して利用します。
    • Jakarta EE環境では、JAX-WSなどの技術を利用してSOAP通信を行います。

 

認証とライブラリ 🔑

 

連携を実現するためには、適切な認証設定とライブラリの利用が重要です。

 

認証

 

SalesforceとのAPI連携では、セキュリティ確保のために接続アプリケーションを作成し、OAuth 2.0フロー(例:認証コードグラント、クライアントクレデンシャルなど)を利用してアクセストークンを取得するのが標準的な手順です。

 

Java/Jakarta EEでの利用

 

  • REST APIの場合:
    • JSONデータの処理のためにJacksonGsonなどのライブラリを組み合わせて利用することが多いです。
    • 認証情報の管理やトークンの自動更新を行うユーティリティを自前で実装するか、それらをサポートするJava用のSalesforce向けSDK(Salesforce公式またはコミュニティ提供のもの)があれば利用を検討します。
  • SOAP APIの場合:
    • 前述の通り、WSDLから生成されたJavaコード(スタブ)を利用して、SOAPリクエストを抽象化されたメソッド呼び出しとして実行します。

連携したい具体的なSalesforceの機能や、Jakarta EE環境のバージョン、利用したいフレームワーク(例: Spring Boot, MicroProfileなど)によって、最適な実装アプローチは変わってきます。

SalesforceとJakarta EEを連携させる上で、主要なAPIであるREST APISOAP APIには以下のような違いがあります。

結論として、特別な理由がない限り、新規の連携にはよりシンプルで柔軟なREST APIが推奨されます。


 

🆚 REST API と SOAP API の比較

 

項目 REST API (Representational State Transfer) SOAP API (Simple Object Access Protocol)
通信方式 HTTPの標準的なメソッド (GET, POST, PUT, DELETEなど) を利用。 SOAPプロトコルを使用し、通常はHTTP/HTTPS経由で通信。
データ形式 主に JSON (JavaScript Object Notation) を使用。XMLも利用可能。 XML (Extensible Markup Language) のみを使用。
構造 リソース指向 (URLでリソースを識別)。軽量でシンプル。 メッセージ/サービス指向。厳格で複雑なメッセージ構造を持つ。
処理速度 メッセージが小さく、オーバーヘッドが少ないため、高速 XMLパース処理などにより、RESTよりも遅い傾向がある。
セキュリティ HTTPS (SSL/TLS) を使用。OAuth 2.0認証が主流。 HTTPS (SSL/TLS) を使用。WS-Securityなどの標準的なセキュリティ仕様も利用可能。
連携難易度 シンプルで、容易に実装できる。 WSDLからのスタブ生成が必要で、複雑になることがある。
利用ケース Webやモバイルアプリ連携、リアルタイム性の高いデータ操作など、ほとんどの新規連携 厳格な仕様が求められるエンタープライズ統合、旧来のシステムとの連携。

💡 Jakarta EE 環境での適用

 

Jakarta EEアプリケーションからSalesforceを操作する場合、それぞれのAPIは以下のように利用されます。

 

1. REST API の場合 (推奨)

 

  • HTTPクライアント: Jakarta EE環境では、標準のJava HTTPクライアント(java.net.http.HttpClient)や、MicroProfile Rest Clientなどのライブラリを利用し、JSON形式のデータを送受信します。
  • データ処理: Jakarta JSON Processing (JSON-P)Jakarta JSON Binding (JSON-B) などの標準仕様、またはJackson/Gsonなどのライブラリを使って、JSONデータをJavaオブジェクトにマッピング(シリアライズ/デシリアライズ)します。
  • 認証: OAuth 2.0フローを実装し、取得したアクセストークンをHTTPリクエストのヘッダーに含めて送信します。

 

2. SOAP API の場合

 

  • WSDLとスタブ: SalesforceからダウンロードしたWSDL(Web Service Description Language)ファイルに基づき、Javaのツール(例:JAX-WS RI、Apache CXF)でクライアント側のスタブコード(Javaクラス)を生成します。
  • SOAP通信: Jakarta EEのJakarta XML Web Services (JAX-WS) などの技術を利用し、生成されたスタブクラスのメソッドを呼び出すことでSOAP通信を実行します。
  • 複雑性: 厳格なXMLスキーマに従うため、RESTに比べて設定やコーディングが煩雑になる傾向があります。
選択 特徴と理由
REST API ほとんどの新規連携に最適です。軽量で高速、実装もシンプルで、JSON形式はJakarta EEアプリケーションでのデータ処理に適しています。
SOAP API 厳格なトランザクション管理や、WSDLベースの厳密な契約(インターフェース定義) が必要な場合に限られます。特に理由がなければRESTを選択すべきです。

 

最終的な確認はそれぞれのJakarta EE対応製品メーカにお尋ねください。

Posted in: EspressDashboard, EspressDashboard -導入・製品, EspressReport ES, EspressReport ES -導入・製品