スタブオブジェクトのプロパティは、スタブのAPIを使用して設定する以外に、スタブ設定ファイルによって設定することもできます。
スタブ設定ファイルによる設定方法について以下に説明します。
なお、スタブオブジェクトに設定できるプロパティについては、“18.2.5 HTTP接続に関する設定”を参照してください。
ポイント
スタブ設定ファイルで指定したプロパティがスタブオブジェクトに設定されるのは、Serviceオブジェクトからスタブオブジェクトを取得するときです。そのため、アプリケーションはjavax.xml.rpc.Stubインタフェースの_setPropertyメソッドを使用してプロパティを上書きできます。
Serviceオブジェクトからスタブオブジェクトを取得する際に、メソッドの引数に接続先URLを指定した場合は、スタブ設定ファイルで指定した値より引数に指定した値が優先されます。
スタブ設定ファイルの指定方法
Serviceインタフェースごとに、以下のシステムプロパティでスタブ設定ファイルのパスを指定します。
システムプロパティ名:
<Serviceインタフェースの完全修飾クラス名(FQCN)>.configuration |
例
Serviceインタフェースがcom.example.TestServiceの場合の設定例
-Dcom.example.TestService.configuration=C:\temp\test.properties |
スタブ設定ファイルの記述形式
スタブ設定ファイルはプロパティファイル形式で記述します。
プロパティ名、プロパティ値は以下の形式で記述します。ポート名については“ポート名について”を参照してください。
サービス内の特定のポートに対する設定
<ポート名>.<スタブに設定するプロパティ名>=<スタブに設定するプロパティ値> |
サービス内のすべてのポートに対する設定(上記設定が優先されます)
default.<スタブに設定するプロパティ名>=<スタブに設定するプロパティ値> |
例
Test.javax.xml.rpc.service.endpoint.address=http://www.example.com/services/Test
Test.javax.xml.rpc.session.maintain=true
注意
プロパティの型がjava.lang.Booleanの場合、値が文字列“true”に等しい(大文字と小文字は区別しない)場合はtrue、それ以外はfalseとなります。
プロパティの型がjava.lang.Integerの場合、整数値として不正な値を指定した場合は警告メッセージが出力され、そのプロパティは設定されません。
存在しないポート名やプロパティ名を指定した場合は無視されます。
プロパティとして、HTTP Basic認証の認証情報なども指定できます。スタブ設定ファイルに記述する情報に応じて、ファイルのアクセス権限を適切に設定してください。
ポート名について
プロパティ名に使用するポート名は、WSDLに記述されているものではなく、生成されたServiceインタフェースの get<ポート名> というメソッドに使われるポート名の文字列と同じ文字列としてください(Javaで使用可能な名前に変換されたものを使用してください)。