Hitachi

JP1 Version 12 JP1/Automatic Operation サービステンプレートリファレンス


4.2.19 Webクライアント部品

機能

部品の入力プロパティからHTTPリクエストメッセージを生成し,送信します。また,受信したHTTPレスポンスメッセージを出力プロパティとして出力します。

定義済みのWebサービス接続先の設定項目を入力値として参照することもできます。

プロトコルバージョンはHTTP/1.1またはHTTPS/1.1です。

また,HTTPSでサポートしているTLSバージョンはTLSv1.2です。

HTTPメッセージの要素と部品プロパティの対応を次に示します。

表4‒9 HTTPリクエストメッセージに対応する入力プロパティ

メッセージの要素

入力プロパティ

リクエスト行

メソッド

requestMethod

URI

requestUrl

HTTP/バージョン

ヘッダー

requestHeaders

ボディー

requestBody

(凡例)

−:HTTP/1.1またはHTTPS/1.1で固定のため,対応するプロパティはありません。

なお,Webクライアント部品は,入力プロパティに指定された値を変換しません。そのため,入力プロパティには,変換が不要な形式で値を指定してください。

表4‒10 HTTPレスポンスメッセージに対応する出力プロパティ

メッセージの要素

出力プロパティ

ステータス行

HTTP/バージョン

ステータスコード

responseStatusCode

ステータスメッセージ

responseStatusMessage

ヘッダー

responseHeaders

ボディー

responseBody

(凡例)

−:HTTP/1.1またはHTTPS/1.1で固定のため,対応するプロパティはありません。

注※

出力されるボディーのサイズは,30MB以下になるようにしてください。30MBを超える場合,超えた分の値が切り捨てられます。

注意事項

バージョン

01.01.00

タグ

HTTP

戻り値

戻り値

説明

0

正常に終了した。

1

HTTPレスポンスメッセージのステータスコードとして,200番台(成功)以外が返却された。

70

Webサーバまたはプロキシサーバとの接続に失敗した。

77

Webサーバまたはプロキシサーバのホスト名解決に失敗した。

80

タスクの実行を停止した。

86

指定したプロパティ値に誤りがあるか,Webサービス接続先定義の設定値が見つからなかった。

90

接続後のデータ転送に失敗した。

91

HTTPレスポンスメッセージのボディーのサイズが30MBを超えている。

127

そのほかのエラーが発生した。

プロパティ一覧

プロパティを次の表に示します。

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

webServiceConnectionCategory

Webサービス接続カテゴリ

Webサービス接続定義の設定項目を入力値として参照する場合に指定します。

Webサービス接続定義のカテゴリを指定します。

このプロパティを指定する場合は,プロパティ「webServiceConnectionName」も必ず指定してください。

入力

webServiceConnectionName

Webサービス接続名

Webサービス接続定義の設定項目を入力値として参照する場合に指定します。

Webサービス接続の接続先名を指定します。

このプロパティを指定する場合は,プロパティ「webServiceConnectionCategory」も必ず指定してください。

入力

requestMethod

メソッド

HTTPメソッドとして,次のどれかを指定します。

  • GET

  • POST

  • PUT

  • DELETE

GET

入力

requestUrl

リクエストURL

HTTPリクエストを送信するリソースのURLと,クエリパラメータを指定します。URLエンコード済みの値を指定してください。

なお,300番台(リダイレクト)のステータスコードが返却される場合で,あらかじめリダイレクト先のURLが分かる場合は,リダイレクト先のURLを指定することをお勧めします。

プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定する場合は,URLのホスト名以降の"/"から先を指定してください。

入力

requestHeaders

リクエストヘッダ

HTTPリクエストヘッダーを指定します。RFC 7230の規則に従って記述してください。

なお,Content-Typeヘッダーでリクエストボディーのフォーマットを指定し,Content-Typeヘッダーのcharsetパラメータで文字セットを指定することをお勧めします。

入力

requestBody

リクエストボディ

HTTPリクエストボディーを指定します。Content-Typeヘッダーに指定したフォーマットで記述してください。

入力

webAuth

サーバ認証スキーム

サーバ認証の種類として,次のどれかを指定します。

  • none

    サーバ認証を使用しない場合に指定します。

  • basic

    Basic認証を使用する場合に指定します。

  • digest

    Digest認証を使用する場合に指定します。

  • negotiate

    Negotiate認証を使用する場合に指定します。なお,Negotiate認証が使用できるのは,JP1/AOのOSがWindowsの場合です。

プロパティ「requestHeaders」に認証ヘッダーを指定する場合は,「none」を指定してください。プロパティ「requestHeaders」に認証ヘッダーが指定されていて,プロパティ「webAuth」に「none」以外が指定されている場合,通信エラーになることがあります。

none

入力

webUsername

サーバ認証ユーザー名

サーバ認証に使用するユーザー名を256文字以内で指定します。

次の場合は指定不要です。

  • プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合

  • プロパティ「webAuth」に「none」を指定した場合

入力

webPassword

サーバ認証パスワード

サーバ認証に使用するパスワードを256文字以内で指定します。

次の場合は指定不要です。

  • プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合

  • プロパティ「webAuth」に「none」を指定した場合

入力

useProxy

プロキシの使用

リクエスト時,プロキシ接続をするかどうかについて次のどちらかを指定します。

  • true

    リクエスト時,プロキシ接続を使用する場合に指定します。

  • false

    リクエスト時,プロキシ接続を使用しない場合に指定します。

プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合は,指定不要です。

false

入力

proxyHostname

プロキシホスト名

プロキシのホスト名またはIPアドレスを256文字以内で指定します。

次の場合は指定不要です。

  • プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合

  • プロパティ「useProxy」に「false」を指定した場合

入力

proxyPort

プロキシポート番号

プロキシのポート番号を1〜65535で指定します。

次の場合は指定不要です。

  • プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合

  • プロパティ「useProxy」に「false」を指定した場合

8080

入力

proxyAuth

プロキシサーバ認証スキーム

プロキシ認証の種類を指定します。

次の場合は指定不要です。

  • プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合

  • プロパティ「useProxy」に「false」を指定した場合

次のどれかを指定します。

  • none

    プロキシ認証を使用しない場合に指定します。

  • basic

    Basic認証を使用する場合に指定します。

  • digest

    Digest認証を使用する場合に指定します。

プロパティ「requestHeaders」に認証ヘッダーを指定する場合は,「none」を指定してください。プロパティ「requestHeaders」に認証ヘッダーが指定されていて,プロパティ「proxyAuth」に「none」以外が指定されている場合,通信エラーになることがあります。

none

入力

proxyUsername

プロキシユーザー名

プロキシ認証に使用するユーザー名を256文字以内で指定します。

次の場合は指定不要です。

  • プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合

  • プロパティ「useProxy」に「false」を指定した場合

  • プロパティ「proxyAuth」に「none」を指定した場合

入力

proxyPassword

プロキシパスワード

プロキシ認証に使用するパスワードを256文字以内で指定します。

次の場合は指定不要です。

  • プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」に値を指定した場合

  • プロパティ「useProxy」に「false」を指定した場合

  • プロパティ「proxyAuth」に「none」を指定した場合

入力

responseStatusCode

ステータスコード

HTTPレスポンスメッセージのステータスコードが出力されます。

なお,300番台(リダイレクト)のステータスコードが返却された場合は,自動でリダイレクトします。

出力

responseStatusMessage

ステータスメッセージ

HTTPレスポンスメッセージのステータスメッセージが出力されます。

出力

responseHeaders

レスポンスヘッダ

HTTPレスポンスメッセージのヘッダー情報が出力されます。

出力

responseBody

レスポンスボディ

HTTPレスポンスメッセージのボディー情報が出力されます。

出力

ヘッダーの送受信について

次のヘッダーについては,リクエスト時に値を指定しない場合,デフォルト値が設定されます。

表4‒11 デフォルト値が設定されるヘッダー

ヘッダー

デフォルト値

Accept

application/json

Accept-language

en

Content-Type

application/json

Cache-Control

no-cache

Pragma

no-cache

User-Agent

クライアントソフトウェアの名称およびバージョン

Host

リクエスト先のホスト名およびポート番号

Connection

keep-alive

注※

デフォルト値が設定されるのは,メソッドにPOSTまたはPUTを指定した場合です。

また,次のヘッダーは送受信の際に特殊な動作をします。

表4‒12 特殊な動作をするヘッダー

ヘッダー

動作

Content-Typeのcharsetパラメータ

リクエスト時

charsetパラメータに指定した値で,ボディーの文字セットを変換します。指定がない場合は,UTF-8で変換します。

レスポンス時

返却されたcharsetパラメータで,ボディーの文字セットを解釈します。charsetパラメータが返却されない場合は,UTF-8として解釈します。

Content-Encoding

gzip形式またはdeflate形式で返却された場合,ファイルを展開します。

接続タイムアウト値の設定について

Webサーバまたはプロキシサーバとの接続でトラブルが発生して,HTTP/HTTPS通信が終了しない場合に,異常を検知するための接続タイムアウト値を設定できます。接続タイムアウト値は,ユーザー設定プロパティファイル(config_user.properties)のプロパティ「plugin.http.connect.timeout」および「plugin.http.read.timeout」で設定します。

WebサーバとのNegotiate認証で使用するための準備

WebサーバとのNegotiate認証では,Kerberos v5認証を使用します。Kerberos v5認証を使用するためには,構成ファイルの編集および参照設定が必要です。

認証で使用する構成ファイルと,格納場所を次に示します。

Kerberos v5認証を使用する手順を次に示します。

  1. Kerberos構成ファイルを編集して保存します。

  2. 認証で構成ファイルを参照するため,「共通コンポーネントのインストール先フォルダ¥Base64¥uCPSB¥CC¥web¥containers¥AutomationWebService¥usrconf¥usrconf.cfg」に,次の記述を追加して保存します。

    add.jvm.arg=-Djava.security.krb5.conf=JP1/AOのインストール先フォルダ/conf/plugin/krb5.conf
    add.jvm.arg=-Djava.security.auth.login.config=JP1/AOのインストール先フォルダ/conf/plugin/login.conf
    add.jvm.arg=-Djavax.security.auth.useSubjectCredsOnly=false
    
  3. JP1/AOのサービスを停止します。

    非クラスタシステムの場合

    hcmds64srvコマンドにstopオプションを指定して実行します。

    クラスタシステムの場合

    クラスタソフトを使用してサービスをオフラインにします。

  4. JP1/AOのサービスを開始します。

    非クラスタシステムの場合

    hcmds64srvコマンドにstartオプションを指定して実行します。

    クラスタシステムの場合

    クラスタソフトを使用してサービスをオンラインにします。

Webサービス接続先定義の参照について

プロパティ「webServiceConnectionCategory」およびプロパティ「webServiceConnectionName」にWebサービス接続先定義のカテゴリと接続先名を指定することで,Webサービス接続先定義の設定項目をWebクライアント部品の入力プロパティとして参照することができます。対応する入力プロパティに値が設定されているときは,Webサービス接続先定義の設定項目で上書きされます。

Webクライアント部品の入力プロパティとWebサービス接続先定義の設定項目の対応関係を次の表に示します。

表4‒13 Webクライアント部品の入力プロパティとWebサービス接続先定義の設定項目

Webクライアント部品の入力プロパティ

Webサービス接続先定義の設定項目

requestUrl

IPアドレス/ホスト名

プロトコル

ポート番号

webUsername

ユーザーID

webPassword

パスワード

useProxy

プロキシ設定

proxyHostname

プロキシサーバのIPアドレス/ホスト名

proxyPort

プロキシサーバのポート番号

proxyAuth

プロキシサーバの認証方式

proxyUsername

プロキシサーバのユーザーID

proxyPassword

プロキシサーバのパスワード

注※ Webサービス接続先定義の設定項目とプロパティ「requestUrl」に指定した値を組み合わせてリクエストURLを生成します。そのあと,生成したリクエストURLでプロパティ「requestUrl」を上書きします。

Webクライアント部品とJavaScript実行部品との連携例

Webクライアント部品は,実行時に,プロパティに指定された値を変換しないでそのまま使用します。そのため,プロパティの値を変換する必要があるときは,JavaScript実行部品と連携して使用することをお勧めします。URLエンコードおよびサーバのレスポンスからSSO時の認証トークンを抜き出す処理をする場合の,Webクライアント部品とJavaScript実行部品との連携例を次に示します。

図4‒13 Webクライアント部品とJavaScript実行部品との連携例

[図データ]

関連トピック