2.2.13 TP1-Bridgeの使用(通常版かつTP1-Bridge限定)
TP1-Bridgeを使用するアプリケーションの開発方法について説明します。
TP1-Bridgeの機能を使用する処理は、OrchestratorおよびEntity-Serviceのアプリケーションで実装してください。
TP1-Bridgeを使用する場合は、OpenTP1のSPPに接続するためのサービスグループ名とサービス名、およびOpenTP1のSPPへの要求電文となるJSON形式のデータが必要です。
TP1-Bridgeを使用するためには、org.springframework.web.client.RestTemplateクラスを使用してTP1-Bridgeを呼び出します。
TP1-Bridgeを呼び出す前提として、トランザクションを伝搬する処理の実装が必要です。TP1-Bridgeを呼び出すために必要なHMP-PCTOのライブラリは、トランザクションの伝搬で必要なライブラリに含まれています。
- 〈この項の構成〉
(1) コーディング例
サービスグループ名とサービス名は、TP1-Bridgeに通信するためのURLのパスに設定します。
次に示す形式で設定してください。
http://<TP1-Bridgeのホスト名>:<TP1-Bridgeのポート番号>/tp1bridge/<サービスグループ名>/<サービス名>
JSONデータは、TP1-Bridgeに通信する要求電文のBodyに設定してください。また、要求電文はPOSTで送信してください。
String url = "http://xxxx:xxxx/tp1bridge/serviceg1/service1"; // TP1-BridgeのURLとサービスグループ名サービス名を用意
RestTemplate restTemplate = new RestTemplate(); // RestTemplateのインスタンス作成
String jsonData = "{\"Data1\":\"AAAA\",\"Data2\":\"BBBB\"}"; // String型のJsonデータを用意
RequestEntity.BodyBuilder rb = RequestEntity.post(url); // TP1-BridgeのURL設定
RequestEntity<?> request = rb.body(jsonData); // JsonデータをBodyに設定
ResponseEntity<?> response = restTemplate.exchange(request, String.class); // 通信実行
String responseBody = response.getBody(); // 応答電文のJsonデータをBody部から取り出し- 注
-
この例では、インタセプタの登録(トランザクションの伝搬)に関する記述を省略しています。
(2) エラーハンドリング
RestTemplateを使用した通信で例外が発生した場合は、RestTemplateが送出する例外、例外のメッセージ、およびステータスコードを参照してください。
HMP-PCTOが送出するstatuscodeについては、取扱説明書「HMP-PCTO テクニカルガイド」のTP1-Acceptorの機能のHTTPステータスマッピングに関する説明を参照してください。
(3) JSONの形式に関する注意事項
TP1-Bridgeは、JSON形式のデータをバイナリ形式に変換する際に、uCosminexus Service PlatformのJSON-XML変換APIを使用します。そのため、TP1-Bridgeを使用する際のJSON形式のデータは、uCosminexus Service PlatformのJSON-XML変換APIの仕様が定める形式としてください。
JSON形式の詳細については、マニュアル「Cosminexus BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編」の、JSON-XML変換で扱うJSONと標準仕様のJSONとの差異に関する説明を参照してください。