Oracle Enterprise Pack for Eclipse Oracle Mobile Application Framework (OEPE Edition)でのモバイル・アプリケーションの開発 リリース2.3.0 E77213-01 |
|
![]() 前 |
![]() 次 |
この章では、構成サービスを使用して、MAFアプリケーションで使用するエンド・ポイントを構成する方法について説明します。
この章には次の項が含まれます:
構成サービスは、Webサービス、ログイン・ユーティリティ、MAFアプリケーションのその他の部分によって使用されるエンド・ポイントを構成できるツールです。
注意: ユニバーサルWindowsプラットフォーム上のMAFアプリケーションは、構成サービスの使用をサポートしていません。 |
エンド・ポイント(またはシード) URLはconnections.xml
ファイルで定義され、新しい接続エントリをそのファイルに追加する必要があります。新しい接続は、HttpURLConnection
型で、url
値が構成サーバー・エンド・ポイント(またはシード) URLを指し、name
が最終的にJavaBeanコードで参照される任意の値に設定されている必要があります。
次の例は、connections.xml
ファイルでの構成サービス・エンド・ポイントの定義方法を示しています。
<RefAddresses> <XmlRefAddr addrType="ConfigServiceConnection"> <Contents> <urlconnection name="ConfigServiceConnection" url="http://127.0.0.1"/> </Contents> </XmlRefAddr> </RefAddresses> </Reference> <!-- Login Server connection for secured configuration service --> <Reference name="ConfigServerLogin" className="oracle.adf.model.connection.adfmf.LoginConnection" adfCredentialStoreKey="ConfigServerLogin" partial="false" manageInOracleEnterpriseManager="true" deployable="true" xmlns=""> <Factory className="oracle.adf.model.connection.adfmf.LoginConnectionFactory"/> <RefAddresses> <XmlRefAddr addrType="adfmfLogin"> <Contents> <login url="http://127.0.0.1"/> <logout url="http://127.0.0.1"/> <authenticationMode value="remote"/> <idleTimeout value="300"/> <sessionTimeout value="28800"/> <maxFailuresBeforeCredentialCleared value="3"/> <rememberCredentials> <enableRememberUserName value="true"/> <rememberUserNameDefault value="true"/> <enableRememberPassword value="false"/> <enableStayLoggedIn value="false"/> </rememberCredentials> <accessControl/> <userObjectFilter/> </Contents> </XmlRefAddr> </RefAddresses>
構成サーバーに対してセキュリティが有効である場合、connections.xmlファイルにはURL接続と同じエンド・ポイントURLを指すログイン接続を含める必要があります。前の例に示したように、ログイン接続とHttpURLConnection
は、同じadfCredentialStoreKey
を共有する必要があります。
多くの場合、エンド・ポイントURLはエンド・ユーザーから取得する必要があります。このユース・ケースに対処するには、エンド・ユーザーからエンド・ポイントURLの値を取得するためのユーザー・インタフェースを作成し、それをアプリケーション・プリファレンスに設定します。その後、取得した値をJava Beanメソッドで使用して、接続URL値をオーバーライドできます(例14-1を参照)。
例14-1 接続定義のオーバーライド
AdfmfJavaUtilities.clearSecurityConfigOverrides(<ConfigService_ConnectionName>); AdfmfJavaUtilities.overrideConnectionProperty(<ConfigService_ConnectionName>, "urlconnection", "url", <ConfigService_EndpointURL>); // Required if Config Service is secured and the authentication endpoints are input by the user AdfmfJavaUtilities.clearSecurityConfigOverrides(<ConfigService_AuthenticationConnectionName>); AdfmfJavaUtilities.overrideConnectionProperty(<ConfigService_AuthenticationConnectionName>, "login", "url", <Login_EndpointURL>); AdfmfJavaUtilities.overrideConnectionProperty(<ConfigService_AuthenticationConnectionName>, "logout", "url", <Logout_EndpointURL>); // Final step is to apply the changes. AdfmfJavaUtilities.updateApplicationInformation(false);
構成サービスのユーザー・インタフェースが必要な場合は、新規または既存のアプリケーション機能内に作成する必要があります。
MAFでは、oracle.adfmf.config.client.ConfigurationService
クラス内で一連のAPIが提供され、サーバー上の新しい変更を確認して更新内容をダウンロードできます。Java BeanでこれらのAPIを使用して、構成サービスのアプリケーション機能を介してそれぞれのメソッドをアクティブ化できます。
次のAPIの一覧とその使用例では、_configservice
変数はoracle.adfmf.config.client.ConfigurationService
クラスのインスタンスを表しています。
setDeliveryMechanism
メソッドは構成サービスの配信メカニズムを設定します。旧リリースの構成サービスとの通信はHTTPを使用することで可能になるので、このメソッドの引数としてhttp
が渡されます。
_configservice.setDeliveryMechanism("http");
注意: メソッドの引数は構成サービスに使用するWebトランスポートを参照するため、HTTPまたはHTTPSと混同しないでください。エンド・ポイントがHTTPS URLの場合でも、トランスポートをhttpに設定することはできます。 |
setDeliveryMechanismConfiguration
メソッドは、構成サービスに追加の属性を設定し、構成サーバー接続とエンド・ポイントURLを関連付けできます。
_configservice.setDeliveryMechanismConfiguration("connectionName", "ConfigServerConnection"); _configservice.setDeliveryMechanismConfiguration("root", <Endpoint_URL);
isThereAnyNewConfigurationChanges
メソッドは、サーバーにダウンロードできる変更内容がないか確認し、ある場合はtrue
を返します。
_configservice.isThereAnyNewConfigurationChanges(<APPLICATION_ID>, <VERSION>);
stageAndActivateVersion
メソッドは、構成サービスによる更新のダウンロードをトリガーします。このメソッドの引数としてアプリケーション・バージョン(ハードコード化された値またはApplication.getApplicationVersion
APIを使用して取得)が渡されます。
_configservice.stageAndActivateVersion("1.0"); _configservice.stageAndActivateVersion(Application.getApplicationVersion);
addProgressListener
メソッドは、更新メッセージと進捗ステータスを受け取るために、構成サービスで更新進捗リスナーを登録します。基となるクラスはProgressListener
インタフェースと、構成サービスから呼び出されるupdateProgress
メソッドを実装する必要があります。updateProgress
メソッドは、進捗更新メッセージと更新完了率を受け取ります。
_configservice.addProgressListener(this);
removeProgressListener
メソッドは、更新進捗リスナーを登録解除します。
_configservice.removeProgressListener(this);
ConfigServiceDemoサンプル・アプリケーションは、これらのAPIを使用して構成サーバーと通信する方法を示しています。詳細は、付録E「サンプルのMAFアプリケーション」を参照してください。
oracle.adfmf.config.client.ConfigurationService
クラスの詳細は、Oracle Mobile Application Framework Java APIリファレンスを参照してください。
構成サービスは、ユーザーが指定した、またはconnections.xmlファイルに指定されているエンド・ポイントURLを取得し、それを使用してconnections.xmlファイルをダウンロードするためのURLを構築します。
たとえば、アプリケーションIDの値がcom.mycompany.appname
のアプリケーションに対して、ユーザーが次のエンド・ポイントURLを指定している場合、
http://my.server.com:port/SomeLocation
構成サービスは、次のURLを構築してconnections.xmlファイルをダウンロードします。
http://my.server.com:port/SomeLocation/com.mycompany.appname/connections.xml
構成サービスは、HTTP GET
リクエストを受け入れてconnections.xml
ファイルを返すサービスとして実装できます。
構成サービス・クライアントによって使用されるURLの形式は、次のとおりです。
url configured in
/connections.xml
構成サービスのエンド・ポイントは、HTTPおよびHTTPSを経由する基本認証(BASIC_AUTH
)を使用して保護できます。