Hitachi

Cosminexus V11 アプリケーションサーバ SOAPアプリケーション開発の手引


10.3 クライアント定義ファイルの設定

クライアント定義ファイルは,「c4webcl.properties」というファイル名称で利用者が作成します。作成したクライアント定義ファイルは,クラスパス上に配置してください。

配置例を次に示します。

コマンドラインを利用する場合

コマンドラインからSOAPアプリケーションを利用する場合,Javaコマンド実行時に指定するクラスパス上に,クライアント定義ファイルを配置してください。例えば,次のようにクライアントを実行する場合は,C:\temp\に配置します。

cjclstartap -classpath C:\temp\ <クライアントのJavaクラス名>

cjclstartapコマンドについては,マニュアル「アプリケーションサーバ リファレンス コマンド編」を参照してください。

クラスパスはJ2EEサーバ用オプション定義ファイルで指定することもできます。J2EEサーバ用オプション定義ファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。

サーブレットを利用する場合

サーブレットからSOAPアプリケーションを利用する場合,WARファイルのWEB-INF/classesに,クライアント定義ファイルを配置してください。WARファイルの構成例を次に示します。

SOAPアプリケーションを利用するサーブレットクラスRPCSampleClientを含むRPCSampleClient.warの例
RPCSampleClient.war/
  getUserData.html
  META-INF/
    MANIFEST.MF
  WEB-INF/
    web.xml
    classes/
      c4webcl.properties
      localhost/
        RPCSampleClient.class
          :

WARファイルの作成方法については,マニュアル「アプリケーションサーバ アプリケーション開発ガイド」を参照してください。

サーブレットからSOAPアプリケーションを利用する場合,J2EEサーバ用オプション定義ファイルのadd.class.pathキーに指定したパスに配置することもできます。J2EEサーバ用オプション定義ファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。ただし,この場合,そのJ2EEサーバにデプロイされた,SOAPアプリケーションを利用するすべてのアプリケーションが同じ設定で動作するので注意してください。なお,「EJBを利用する場合」の次の注意事項も参照してください。

EJBを利用する場合

EJBからSOAPアプリケーションを利用する場合,EJB-JARファイルのルートディレクトリに,クライアント定義ファイルを配置してください。EJB-JARファイルの構成例を次に示します。

SOAPアプリケーションを利用するEJB"RPCSampleClient"を含むRPCSampleClient-ejb.jarの例
RPCSampleClient-ejb.jar/
  c4webcl.properties
  META-INF/
    ejb-jar.xml
    MANIFEST.MF
  localhost/
    RPCSampleClient.class
    RPCSampleClientBean.class
    RPCSampleClientHome.class
      :

EJB-JARファイルの作成方法については,マニュアル「アプリケーションサーバ アプリケーション開発ガイド」を参照してください。

EJBからSOAPアプリケーションを利用する場合,J2EEサーバ用オプション定義ファイルのadd.class.pathキーに指定したパスに配置することもできます。J2EEサーバ用オプション定義ファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。ただし,この場合,そのJ2EEサーバにデプロイされた,SOAPアプリケーションを利用するすべてのアプリケーションが同じ設定で動作するので注意してください。なお,次の注意事項も参照してください。

注意事項
  • J2EEサーバ上でクライアントを実行する場合,Managementクラスのメソッドを必ず使用してください。

  • SOAPサービスを利用するクライアントを同じマシン上で複数動作させる場合,クライアント定義ファイルのトレースファイル,アプリケーションログのプレフィクス(log_file_prefix)は,クライアントごとに異なる値を設定してください。同じ値を設定すると,実行時オプションの指定による制御が正しく行われません。その他の設定(重要度,面数,ファイルサイズ)については,すべてのクライアントが同じ設定で動作します。

次の表に設定するキー名称と値の一覧について示します。

表10‒2 クライアント定義ファイルの設定項目

設定項目

キー名称

デフォルト値

(値省略時の仮定値)

トレースファイル,アプリケーションログのプレフィクス

c4web.logger.log_file_prefix

任意の文字列を設定します。

「<log_file_prefix>-j2ee-<J2EEサーバのサーバ名>※1-<log_file_num>.log」がトレースファイルの名称となります。「<log_file_prefix>-j2ee-<J2EEサーバのサーバ名>※1-aplog-<log_file_num>.log」がアプリケーションログの名称となります。

c4webcl

多重参照(実行時オプション)

c4web.common.do_multirefs

多重参照を有効にするかどうかを設定します。trueまたはfalseを設定します。※2

false

データ型定義(実行時オプション)

c4web.common.send_xsi_types

データ型情報を送信するかどうかを設定します。trueまたはfalseを設定します。※2

true

未宣言要素の無視※4

c4web.common.ignore_undeclared_elements

XMLスキーマ(DOCUMENTスタイルのwrapped形式で引数および戻り値をラップした要素を除く)で要素宣言していないXMLインスタンスを含むSOAPメッセージを受信した場合,このXMLインスタンスを無視するかどうかを設定します。trueまたはfalseを設定します。※2

false

未宣言パラメタの無視※5

c4web.common.ignore_undeclared_parts

WSDL(RPCスタイルのwsdl:part要素,およびDOCUMENTスタイルのwrapped形式で引数および戻り値をラップした要素)で宣言していないパラメタを含むSOAPメッセージを受信した場合,このパラメタを無視するかどうかを設定します。trueまたはfalseを設定します。※2

false

SOAPヘッダの名前修飾チェックオプション(実行時オプション)

c4web.common.enable_soapheader_check

SOAPヘッダの子エレメントの名前修飾をチェックするかどうかを指定します。trueまたはfalseを設定します。※2

true

性能解析トレース出力オプション

c4web.common.prf_trace_level

ALL,NONHANDLERのどちらかを指定します。

ALL:

次のトレース取得ポイントでトレースファイルが出力されます。

  • 送信側ハンドラの呼び出し

  • ハンドラの呼び出し

  • 受信側ハンドラの呼び出し

  • 送信側ハンドラからの戻り

  • ハンドラからの戻り

  • 受信側ハンドラからの戻り

NONHANDLER:

次のトレース取得ポイントでトレースファイルが出力されません。

  • 送信側ハンドラの呼び出し

  • ハンドラの呼び出し

  • 受信側ハンドラの呼び出し

  • 送信側ハンドラからの戻り

  • ハンドラからの戻り

  • 受信側ハンドラからの戻り

性能解析トレースについては,「14.7 性能解析トレース」を参照してください。

ALL

文字参照形式オプション

c4web.common.character_reference

送信メッセージ中の文字を文字参照形式にエンコードするかどうかを指定します。trueまたはfalseを設定します。※2

false

送信できるSOAPEnvelopeの最大バイト数

c4web.common.send_max_soap_envelope_size

送信できるSOAPEnvelopeの最大バイト数を設定します。設定値は0〜2,147,483,647の数値を設定します。0を指定した場合は無制限となります。

0

受信できるSOAPEnvelopeの最大バイト数

c4web.common.receive_max_soap_envelope_size

受信できるSOAPEnvelopeの最大バイト数を設定します。設定値は0〜2,147,483,647の数値を設定します。0を設定した場合は無制限となります。

0

HTTPセッションの維持(実行時オプション)

c4web.application.app_maintainsession

HTTPセッションを維持するかどうかを設定します。trueまたはfalseを設定します。※2

false

プロキシサーバのホスト名またはIPアドレス(実行時オプション)

c4web.application.proxy_host

プロキシサーバのホスト名またはIPアドレスを設定します。ホスト名またはIPアドレスを示す文字列を設定します。

プロキシサーバを使用しないホスト名またはIPアドレス群(実行時オプション)

c4web.application.non_proxy_hosts

プロキシサーバを使用しないホスト名またはIPアドレス群を設定します。ホスト名またはIPアドレスを示す文字列を設定します。複数のホスト名またはIPアドレスを指定する場合「|」で区切って設定します。※3

プロキシサーバのポート番号(実行時オプション)

c4web.application.proxy_port

ポート番号を示す文字列を設定します。

プロキシサーバの認証ユーザID(実行時オプション)

c4web.application.proxy_user

プロキシサーバの認証ユーザIDを設定します。任意の文字列を設定します。※3

プロキシサーバの認証ユーザIDに対応するパスワード(実行時オプション)

c4web.application.proxy_password

認証ユーザIDに対応するパスワードを設定します。任意の文字列を設定します。※3

クライアントのソケットの書き込みタイムアウト値

c4web.application.socket_write_timeout

クライアントのソケットの書き込みタイムアウト値を秒単位で設定します。0〜86,400の数値を設定します。0を指定した場合はタイムアウト監視をしません。

60

クライアントのソケットの読み込みタイムアウト値

c4web.application.socket_read_timeout

クライアントのソケットの読み込みタイムアウト値を秒単位で設定します。0〜86,400の数値を設定します。0を指定した場合はタイムアウト監視をしません。

300

クライアントのソケットの接続タイムアウト値

c4web.application.socket_connect_timeout

クライアントのソケットの接続タイムアウト値を秒単位で設定します。0〜86,400の数値を設定します。0を指定した場合はタイムアウト監視をしません。

60

Javaソースファイルおよびクラスファイルの出力ディレクトリ

c4web.application.dii_temp_directory

DIIでユーザ定義のデータ型クラスを使用する場合に,WSDL定義から動的に出力されるJavaソースファイルおよびクラスファイルの出力先ディレクトリを,ローカルディレクトリ上の絶対パスで設定します。設定値は1〜128文字の範囲で設定します。なお,ディレクトリ名に指定できる文字は,使用しているOSに依存します。また,ディレクトリ名のパスの区切りには,次の文字を使用してください。

Windowsの場合:

「/」または「\\」を使用してください。

Windows以外の場合:

「/」を使用してください。

<Application Serverのインストールディレクトリ>/c4web/dii/temp

WSDL解析およびJavaソース生成のタイムアウト値

c4web.application.dii_wsdl_parse_timeout

DIIを使用する場合に,WSDL解析およびJavaソース生成のタイムアウト値を秒単位で設定します。0〜3,600の範囲で数値を設定します。0を指定した場合はタイムアウト監視をしません。

45

ホスト名の検証

c4web.application.hostname_verification.enable

ホスト名の検証を有効にするかどうかを設定します。trueまたはfalseを設定します。※2

true

送信できる添付データの最大個数

c4web.attachment.send_max_attachment_count

送信できる添付データの最大個数を設定します。設定値は0〜2,147,483,647の数値を設定します。0を設定した場合は無制限となります。

100

受信できる添付データの最大個数

c4web.attachment.receive_max_attachment_count

受信できる添付データの最大個数を設定します。設定値は0〜2,147,483,647の数値を設定します。0を設定した場合は無制限となります。

0

送信できる各添付データの最大バイト数

c4web.attachment.send_max_attachment_size

送信できる各添付データの最大バイト数を設定します。設定値は0〜2,147,483,647の数値を設定します。0を設定した場合は無制限となります。

104,857,600

受信できる各添付データの最大バイト数

c4web.attachment.receive_max_attachment_size

受信できる各添付データの最大バイト数を設定します。設定値は0〜2,147,483,647の数値を設定します。0を設定した場合は無制限となります。

0

退避ファイルの格納ディレクトリ名

c4web.attachment.attachment_temp_directory

添付ファイル付きSOAPメッセージを受信したときに生成される退避ファイルの出力先ディレクトリを,ローカルディレクトリ上の絶対パスで設定します。設定値は1〜128文字の範囲で指定してください。なお,ディレクトリ名に指定できる文字は,OSに依存します。また,ディレクトリ名のパスの区切りには,次の文字を使用してください。

Windowsの場合:

「/」または「\\」を使用してください。

Windows以外の場合:

「/」を使用してください。

  • Windowsの場合

    <Application Serverのインストールフォルダ>/c4web/attachments

  • Windows以外の場合

    /opt/Cosminexus/c4web/attachments

(凡例)

−:デフォルト値がないことを示します。

注※1

単体Javaアプリケーションとして動作させる場合,"-j2ee-<J2EEサーバのサーバ名>"は付与されません。

注※2

true:設定項目を有効にします。

false:設定項目を無効にします。

また,trueおよびfalseは小文字で記述してください。

注※3

プロキシサーバのホスト名またはIPアドレス(c4web.application.proxy_host)とプロキシサーバのポート番号(c4web.application.proxy_port)のどちらかがnullまたは空文字の場合,設定した値は無視されます。

注※4

falseの場合,XMLスキーマ(DOCUMENTスタイルのwrapped形式で引数および戻り値をラップした要素を除く)で要素宣言していないXMLインスタンスを含むSOAPメッセージを受信した場合,KDCCP0006-EメッセージのC4Faultが発生します。

trueの場合,上記の受信チェックを行いません。該当するXMLインスタンスを無視します。

注※5

falseの場合,WSDL(RPCスタイルのwsdl:part要素,およびDOCUMENTスタイルのwrapped形式で引数および戻り値をラップした要素)で宣言していないパラメタを含むSOAPメッセージを受信した場合,KDCCP0006-EメッセージのC4Faultが発生することがあります。

trueの場合,上記の受信チェックを行いません。該当するパラメタを無視します。

クライアント定義ファイルの例
#  TO BE REPLACED: "<cosminexus.home>",
#                  "<proxy-host>","<nonproxy-host1>"," <nonproxy-host2>",
#                  "<proxy-port>","<proxy-user>","<proxy-password>"
 
#c4web.logger.log_file_prefix=c4webcl
#c4web.common.do_multirefs=false
#c4web.common.send_xsi_types=true
#c4web.common.ignore_undeclared_elements=false
#c4web.common.ignore_undeclared_parts=false
#c4web.common.enable_soapheader_check=true
#c4web.common.prf_trace_level=ALL
#c4web.common.character_reference=false
#c4web.common.send_max_soap_envelope_size=0
#c4web.common.receive_max_soap_envelope_size=0
#c4web.application.app_maintainsession=false
#c4web.application.proxy_host=<proxy-host>
#c4web.application.non_proxy_hosts=<nonproxy-host1>|<nonproxy-host2>
#c4web.application.proxy_port=<proxy-port>
#c4web.application.proxy_user=<proxy-user>
#c4web.application.proxy_password=<proxy-password>
#c4web.application.socket_write_timeout=60
#c4web.application.socket_read_timeout=300
#c4web.application.socket_connect_timeout=60
#c4web.application.dii_temp_directory=<cosminexus.home>/c4web/dii/temp
#c4web.application.dii_wsdl_parse_timeout=45
#c4web.application.hostname_verification.enable=true
#c4web.attachment.attachment_temp_directory=<cosminexus.home>/c4web/attachments
#c4web.attachment.send_max_attachment_count=100
#c4web.attachment.receive_max_attachment_count=0
#c4web.attachment.send_max_attachment_size=104857600
#c4web.attachment.receive_max_attachment_size=0

定義ファイル中の<>で囲まれた部分については,利用者の環境に合わせた値に修正する必要があります。なお,<cosminexus.home>は,Windowsの場合,Application Serverのインストールフォルダを表しています。Windows以外の場合,/opt/Cosminexusを表しています。