Oracle Service RegistryのRange Queries(範囲問合せ)デモ・セットでは、Oracle Service Registryの照会の拡張機能である範囲問合せの使用方法のデモンストレーションを行います。 Oracle Service Registryの範囲問合せ機能を利用すると、比較演算子(>、<)の機能を使用して、keyedReference内で一致するkeyValueを求めてUDDIエンティティを検索できます。
このデモ・セットに含まれるデモは次のとおりです。
FindBusiness
Oracle Service Registryがすでにインストールされ、環境変数REGISTRY_HOMEにレジストリのインストール場所が設定されていることを想定しています。
Oracle Service Registryのデモを実行するには、レジストリが実行中である必要があります。
デモを構成する必要があります。構成システムには、グローバルとローカルの2つのレベルがあります。グローバル・レベルで定義されたプロパティは、ローカル・レベルで上書きできます。グローバル・プロパティは、次のファイルにあります。
Windows: | %REGISTRY_HOME%¥demos¥env.properties |
UNIX: | $REGISTRY_HOME/demos/env.properties |
Oracle Service Registryのインストール中に設定された値はそのまま使用でき、値の変更はすべてのデモに影響を与えます。単一のデモについて(つまりローカル・レベルで)一部のプロパティの値を再定義する必要がある場合は、env.propertiesを編集してください。このファイルは、ファイルrun.sh(run.bat)と同じディレクトリにあります。Advanced Inquiryデモのローカル・レベルのプロパティは、次のファイルからロードされます。
Windows: | %REGISTRY_HOME%¥demos¥advanced¥inquiry¥env.properties |
UNIX: | $REGISTRY_HOME/demos/advanced/inquiry/env.properties |
この項では、デモで使用されるプログラミング・パターンを、FindBusinessデモを例にして説明します。ソース・コードは次のファイルにあります。
Windows: | %REGISTRY_HOME%¥demos¥advanced¥inquiry¥src¥demo¥uddi¥rq¥FindBusiness.java |
UNIX: | $REGISTRY_HOME/demos/advanced/inquiry/src/demo/uddi/rq/FindBusiness.java |
ヘルパー・メソッドcreateFindBusinessによって、次のようにしてFindBusiness構造が作成されます。
public Find_business createFindBusiness(String tModelKey, String keyValue, String operator, String quantifier) throws InvalidParameterException { System.out.println("tModelKey = " + tModelKey); System.out.println("keyValue = " + keyValue); System.out.println("operator = " + operator); System.out.println("quantifier = " + quantifier); Find_business find_business = new Find_business(); QualifiedKeyedReference qualifiedKeyedReference = new QualifiedKeyedReference(); qualifiedKeyedReference.setTModelKey(tModelKey); qualifiedKeyedReference.setKeyValue(keyValue); qualifiedKeyedReference.setFindQualifierArrayList(parseFindQualifiers(operator, quantifier)); find_business.setCategoryBag(new CategoryBag(new KeyedReferenceArrayList(qualifiedKeyedReference))); find_business.setMaxRows(new Integer(MAX_ROWS)); return find_business; }
findBusinessメソッドによって、次のようにして検索操作が実行されます。
public BusinessList findBusiness(Find_business find_business) throws UDDIException, SOAPException { System.out.print("Check structure validity .. "); try { find_business.check(); } catch (InvalidParameterException e) { System.out.println("Failed!"); throw new UDDIException(e); } System.out.println("OK"); UDDI_Inquiry_PortType inquiry = getInquiryStub(); System.out.print("Search in progress .."); BusinessList businessList = inquiry.find_business(find_business); System.out.println(" done"); return businessList; }
この項では、Oracle Service RegistryのAdvanced Inquiry(高度な照会)デモ・セットをビルドして実行する方法を示します。引き続きFindBusinessデモを使用します。
デモが適切に構成され、Oracle Service Registryが実行中であることを確認してください。
次のディレクトリに移動します。
Windows | %REGISTRY_HOME%¥demos¥advanced¥inquiry |
UNIX | $REGISTRY_HOME/demos/advanced/inquiry |
次のコマンドを使用して、デモをビルドします。
Windows: | UNIX: |
run.bat make | ./run.sh make |
![]() | 注意 |
---|---|
Windowsプラットフォームでデモをコンパイルすると、次のテキストが表示されることがあります。 A subdirectory or file ..\..\common\.\build\classes already exists. . これは予想される現象であり、問題を示すものではありません。 |
利用可能なすべてのデモのリストを表示するには、次のコマンドを実行します。
Windows: | run.bat help |
UNIX: | ./run.sh help |
選択したデモを実行するには、runコマンドのパラメータにデモの名前を指定して実行します。たとえば、FindBusinessデモを実行するには、次のように起動します。
Windows: | run.bat FindBusiness |
UNIX: | ./run.sh FindBusiness |
このデモの出力は次のようになります。
Searching for businesses by category where keyedReference Enter tModelKey [uddi:systinet.com:demo:location:floor]: Enter keyValue [1]: 3 Enter operator (=,<,>,<=,>=,<>) [=]:> Enter quantifier (exists,notExists) [exists]: tModelKey = uddi:systinet.com:demo:location:floor keyValue = 3 operator = > quantifier = exists Check structure validity .. OK Using Inquiry at url http://van.in.idoox.com:8888/registry/uddi/inquiryExt .. done Search in progress .. done Displaying 1 of 1, starting at position 1 Business 1 : uddi:systinet.com:demo:it <businessInfoExt businessKey="uddi:systinet.com:demo:it" xmlns="http://systinet.com/uddi/api/v3/ext/5.0"> <name xmlns="urn:uddi-org:api_v3">IT</name> <description xmlns="urn:uddi-org:api_v3">IT department</description> <serviceInfos xmlns="urn:uddi-org:api_v3"> <serviceInfoExt serviceKey="uddi:systinet.com:demo:it:support" businessKey="uddi:systinet.com:demo:it" xmlns="http://systinet.com/uddi/api/v3/ext/5.0"> <name xmlns="urn:uddi-org:api_v3">Support</name> <description xmlns="urn:uddi-org:api_v3">Telephone support</description> <bindingTemplates xmlns="urn:uddi-org:api_v3"> <bindingTemplate bindingKey="uddi:b77eb8f0-86ce-11d8-ba05-123456789012" serviceKey="uddi:systinet.com:demo:it:support"> <description>IT related issues shall be reported there</description> <accessPoint useType="endPoint">tel:+1-123-456-7890</accessPoint> <tModelInstanceDetails> <tModelInstanceInfo tModelKey="uddi:uddi.org:transport:telephone"/> </tModelInstanceDetails> </bindingTemplate> </bindingTemplates> </serviceInfoExt> <serviceInfoExt serviceKey="uddi:systinet.com:demo:hr:employeesList" businessKey="uddi:systinet.com:demo:hr" xmlns="http://systinet.com/uddi/api/v3/ext/5.0"> <name xmlns="urn:uddi-org:api_v3">EmployeeList</name> <description xmlns="urn:uddi-org:api_v3">wsdl:type representing service</description> <bindingTemplates xmlns="urn:uddi-org:api_v3"> <bindingTemplate bindingKey="uddi:5c546520-78b8-11d8-bec4-123456789012" serviceKey="uddi:systinet.com:demo:hr:employeesList"> <description>wsdl:type representing port</description> <accessPoint useType="http://schemas.xmlsoap.org/soap/http">urn:unknown-location-uri</accessPoint> <tModelInstanceDetails> <tModelInstanceInfo tModelKey="uddi:systinet.com:demo:employeeList:binding"> <instanceDetails> <instanceParms>EmployeeList</instanceParms> </instanceDetails> </tModelInstanceInfo> <tModelInstanceInfo tModelKey="uddi:systinet.com:demo:employeeList:portType"> <instanceDetails> <instanceParms>EmployeeList</instanceParms> </instanceDetails> </tModelInstanceInfo> </tModelInstanceDetails> <categoryBag> <keyedReference tModelKey="uddi:uddi.org:xml:namespace" keyName="uddi.org:xml:namespace" keyValue="http://systinet.com/wsdl/demo/uddi/services/"/> <keyedReference tModelKey="uddi:uddi.org:wsdl:types" keyName="uddi.org:wsdl:types" keyValue="port"/> <keyedReference tModelKey="uddi:uddi.org:xml:localName" keyName="uddi.org:xml:localName" keyValue="EmployeeList"/> <keyedReference tModelKey="uddi:systinet.com:taxonomy:endpoint:availability" keyName="Available" keyValue="Available"/> <keyedReference tModelKey="uddi:systinet.com:taxonomy:endpoint:status" keyName="Operational" keyValue="Operational"/> </categoryBag> </bindingTemplate> </bindingTemplates> </serviceInfoExt> </serviceInfos> <contactInfos> <contactInfo useType="Technical support"> <personName xmlns="urn:uddi-org:api_v3">John Demo</personName> </contactInfo> </contactInfos> </businessInfoExt> ********************************************************