しかし、実際にテスト環境や本番環境で動かす時には開発時のURLとは別のURLを指定しなければいけない場合がほとんどだと思います。GeneXusを使ってビルドを行わずに別のURLを指定する場合は以下の方法となります。
1.ロケーション定義ファイルの準備
1-1.ロケーション定義ファイル「Location.xml」を作成します。内容は以下の通りです。
<GXLocations>GXLocationタグのname属性に外部オブジェクト名を指定します。
<GXLocation name="外部オブジェクト名">
<Common>
<Host>localhost</Host>
<Port>80</Port>
<BaseUrl>/BillingSystem.NetEnvironment/</BaseUrl>
<Secure/>
<Proxyserverhost/>
<Proxyserverport/>
<Timeout/>
</Common>
<HTTP>
<Authentication>
<Authenticationmethod/>
<Authenticationuser/>
<Authenticationpassword/>
<Authenticationrealm/>
</Authentication>
<Proxyauthentication>
<Proxyauthenticationmethod/>
<Proxyauthenticationrealm/>
<Proxyauthenticationuser/>
<Proxyauthenticationpassword/>
</Proxyauthentication>
</HTTP>
</GXLocation>
</GXLocations>
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Location.xml+file+format,
Commonタグ内のHost、Port、BaseUrlタグに実行時のURL情報を指定します。
1-2.Location.xmlをターゲットディレクトリに配置してください。
・.netの場合はweb.configと同じディレクトリ(ターゲットディレクトリ)・Javaの場合はアプリケーションサーバーのWEB-INFディレクトリ
2.Webサービス用外部オブジェクトを利用する箇所(Webパネルやプロシージャオブジェクト)にて、以下の記述を追加します。
//下の一行を追加します(ロケーション情報の取得)
&Location = GetLocation('外部オブジェクト名')
//&LocationはLocation拡張データ型です。
//Webサービスの呼び出し
&Result = &Service.Execute(&Param)
Location変数の定義 |
GetLocation関数でロケーション情報を取得 |
これにより再ビルドせずにURLの変更が可能になります。Location.xmlファイルが見つからない場合はディフォルト値としてプロパティの値を使い、存在する場合はLocation.xmlの設定内容を使って通信を行います。
0 件のコメント:
コメントを投稿