現在地: Webサービス > Webサービスの利用 > チュートリアル 2 - Web サービス経由で Java コードを実行 > サービス呼び出し後のエラー・メッセージを取得

サービス呼び出し後のエラー・メッセージを取得

ここまでの「ファイルのコピー」の実装で、必要となる機能は果たされます。ただし、何かの問題があった場合 (ソースファイルが存在しないなど)、その内容を伝えてくれません。ですから、Java コードからエラー・メッセージを取り出すコードを追加してみましょう。

Java コードはコピー処理の最後に、今回の呼び出しの状態を示す JSON オブジェクトを送信します。今後独自のサービスを作成する際も、今回と同じ形式を取るようにしてください。ステータスには次の 2 つの値があります。

それでは、呼び出しのステータスを表示するための再利用可能パーツ ExternalServiceInvocationStatus を作成してみましょう。この再利用可能パーツは、すべてのサービスで利用します。

この新規再利用可能パーツに次のコードを入れます。

Function Options(*DIRECT)

Begin_Com Role(*EXTENDS #PRIM_OBJT)

* OK & ErrorMessage 値を保持する変数

   Define_Com Class(#PRIM_BOLN) Name(#gOK)

   Define_Com Class(#PRIM_DC.UnicodeString) Name(#gErrorMessage)

   * プロパティ: OK & ErrorMessage

   Define_Pty Name(OK) Get(*AUTO #gOK) Set(*AUTO #gOK)

   Define_Pty Name(ErrorMessage) Get(*AUTO #gErrorMessage) Set(*AUTO #gErrorMessage)

   * OK ステータス & エラー・メッセージを HTTP 応答オブジェクトから読み込むルーチン

   Mthroutine Name(FromHttpResponse)

      Define_Map For(*INPUT) Class(#XPRIM_HttpResponse) Name(#HttpResponse) Pass(*BY_REFERENCE)

      Define_Com Class(#XPRIM_RandomAccessJsonReader) Name(#Json)

      * プロパティ初期化

      #gOK := False

      #gErrorMessage := ''

      * 応答があるかどうか確認…

      If (#HttpResponse.IsSuccessfulRequest)

         * 応答 JSON の読み込み

         #Json.SetSourceHttpResponse HttpResponse(#HttpResponse)

         * 要求が OK ステータス・コードを返したかどうか確認

         If (#HttpResponse.IsSuccessHttpStatusCode)

            #gOK := True

         Else

            * JSON 応答からエラー・メッセージを読み込む

            #gErrorMessage := #Json.ReadStringWithName( 'errorMessage' )

         Endif

      Else

         #gErrorMessage := #HttpResponse.ErrorMessage

      Endif

   Endroutine

End_Com

次は: ファイル・サービスの Copy メソッドを調整して HTTP 応答の呼び出しステータスを読み込む