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データの処理のためにJacksonやGsonなどのライブラリを組み合わせて利用することが多いです。
- 認証情報の管理やトークンの自動更新を行うユーティリティを自前で実装するか、それらをサポートするJava用のSalesforce向けSDK(Salesforce公式またはコミュニティ提供のもの)があれば利用を検討します。
- SOAP APIの場合:
- 前述の通り、WSDLから生成されたJavaコード(スタブ)を利用して、SOAPリクエストを抽象化されたメソッド呼び出しとして実行します。
連携したい具体的なSalesforceの機能や、Jakarta EE環境のバージョン、利用したいフレームワーク(例: Spring Boot, MicroProfileなど)によって、最適な実装アプローチは変わってきます。
SalesforceとJakarta EEを連携させる上で、主要なAPIであるREST APIとSOAP 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 -導入・製品



