org.opengion.fukurou.transfer

## クラス AbstractTransferExecHTTP

- java.lang.Object
- - org.opengion.fukurou.transfer.AbstractTransferExecHTTP

- すべての実装されたインタフェース:
    TransferExec
  直系の既知のサブクラス:
    TransferExec_HTTP_CB01

      public abstract class AbstractTransferExecHTTP
      extends Object
      implements TransferExec

       伝送要求に対してのHTTP経由で伝送処理を実行します。

       読取方法により読み取ったデータをPOSTデータとして送信し、リモートホスト上で
       伝送処理を実行します。

       処理の流れとしては以下のようになります。
       ①HTTPで伝送処理を実行するためのサーブレットを呼び出す。
       ②①で呼び出しされたサーブレットが、伝送処理を実行するためのオブジェクトを生成し、
         伝送処理を実行する。
       ③処理終了後、伝送プロセスに制御が戻り、読取方法に基づく後処理(完了処理または
         エラー処理)が実行されます。

       まず①について、呼び出しされるサーブレットは、
         [リモート接続先URL]servlet/remoteControl?class=TransferExecWrapper になります。
         [リモート接続先URL]は、http://[ホスト名]:[ポート番号]/[コンテキスト名]の形式になりますが、
         これについては、実行対象で指定します。
       次に②について、サーブレット経由で実行される伝送処理について、その実行方法は、
         具体的には、サブクラスのクラス名に対して、このクラス(親クラス)のクラス名+"_" を除外した部分が
         実行方法として認識されます。
         具体的には、クラス名の最後の"_"(アンダーバー)以降が実行方法として認識され、
         例として、サブクラス名がTransferExec_HTTP_CB01の場合、接続先における実行方法は
         旧伝送DB登録(CB01)となります。
         また、リモートホスト上で実行される伝送処理の[リモート実行対象]は、元の実行対象で設定します。
         このことから、HTTP経由で伝送処理を実行する場合、元の実行対象には、[リモート接続先URL]と
         [リモート実行対象]の2つを設定する必要があります。
         具体的な設定方法については各サブクラスのJavaDocを参照して下さい。
       最後に③について、接続時にエラーが発生した場合や、レスポンスデータに対して"row_error"という
         文字列が存在する場合は、エラーとして処理します。
         それ以外の場合は、正常終了として処理します。

       HTTP接続時には、以下のポストデータが送信されます。
       [ポストデータ]
       ・KBREAD                        (読取方法)
       ・READOBJ               (読取対象)
       ・READPRM               (読取パラメーター)
       ・KBEXEC                        (実行方法) ※サブクラスの最後の"_"(アンダーバー)以降の文字列
       ・EXECDBID              (実行接続先DBID)
       ・EXECOBJ               (リモート実行対象) ※ローカルの実行対象からリモート接続先URLを除いた文字列
       ・EXECPRM               (実行パラメーター)
       ・ERROR_SENDTO  (読み取り元ホストコード)
       ・HFROM (読み取り元ホストコード)
       ・n (データ件数)
       ・v1～vn (データ)

  変更履歴:

    6.3.9.0 (2015/11/06) クラス名を、Abstract付に変更する。

  機能分類
    伝送システム
  バージョン
    5.0
  作成者
    Hiroki.Nakamura
  導入されたバージョン:
    JDK1.6

- - ### コンストラクタのサマリー

    コンストラクタ
    修飾子 | コンストラクタと説明
    --- | ---
    `protected` | `AbstractTransferExecHTTP()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド abstractメソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `execute(String[] vals, TransferConfig config, Transaction tran)` URL接続を実行します。
    `protected abstract String` | `getRemoteExecObj()` リモート接続先の実行対象を返します。
    `protected abstract String` | `getRemoteHost()` リモート接続先URLを返します。
    `protected abstract void` | `splitExecObj(String localExecObj)` ローカルの実行対象を、リモート接続先の実行対象とリモート接続先URLに分解します。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### AbstractTransferExecHTTP

          protected AbstractTransferExecHTTP()

      デフォルトコンストラクター
      変更履歴:

        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### execute

          public void execute(String[] vals,
                              TransferConfig config,
                              Transaction tran)

      URL接続を実行します。
      定義:
        `execute` インタフェース内 `TransferExec`
      パラメータ:
        `vals` - 伝送データ(配列)
        `config` - 伝送設定オブジェクト
        `tran` - トランザクションオブジェクト
      変更履歴:

        6.3.9.1 (2015/11/27) TransferConfig#connect(String,String) に移動する。

    - #### splitExecObj

          protected abstract void splitExecObj(String localExecObj)

      ローカルの実行対象を、リモート接続先の実行対象とリモート接続先URLに分解します。
      パラメータ:
        `localExecObj` - ローカルの実行対象

    - #### getRemoteHost

          protected abstract String getRemoteHost()

      リモート接続先URLを返します。 このメソッドは、`splitExecObj(String)`の後に呼び出しする必要があります。
      戻り値:
        リモート接続先URL

    - #### getRemoteExecObj

          protected abstract String getRemoteExecObj()

      リモート接続先の実行対象を返します。 このメソッドは、`splitExecObj(String)`の後に呼び出しする必要があります。
      戻り値:
        接続URL

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.