ExtrinsicObject は単独でも発行できますが、ServiceBinding オブジェクトに対する SpecificationLink の specificationObject 属性として使用する目的で ExtrinsicObject を作成することも、一般的に行われます。「サービスとサービスバインディングの作成」を参照してください。ExtrinsicObject は通常、WSDL ファイルを参照します。
SpecificationLink オブジェクトを作成します。
WSDL 文書をリポジトリ内に格納し、それを参照する ExtrinsicObject を作成します。付帯オブジェクトのオブジェクト型を WSDL に、MIME タイプを text/xml に、それぞれ設定します。
この付帯オブジェクトを、SpecificationLink オブジェクトの specificationObject 属性として指定します。
この SpecificationLink オブジェクトを ServiceBinding オブジェクトに追加します。
この ServiceBinding オブジェクトを Service オブジェクトに追加します。
Service オブジェクトを保存します。
Service と ServiceBinding を作成してから、SpecificationLink を作成します。
SpecificationLink specLink = blcm.createSpecificationLink(); specLink.setName("Spec Link Name"); specLink.setDescription("Spec Link Description"); |
「付帯オブジェクトの作成」で説明した方法で ExtrinsicObject を作成します。WSDL 概念の ID と text/xml MIME タイプを使用します。
String conceptId = "urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExtrinsicObject:WSDL"; Concept objectTypeConcept = (Concept) bqm.getRegistryObject(conceptId); ((ExtrinsicObjectImpl)eo).setObjectType(objectTypeConcept); eo.setMimeType("text/xml"); |
ExtrinsicObject を、SpecificationLink の仕様オブジェクトとして設定します。
specLink.setSpecificationObject(eo); |
SpecificationLink を ServiceBinding に追加してからオブジェクトをそのコレクションに追加し、サービスを保存します。
binding.addSpecificationLink(specLink); serviceBindings.add(binding); ... |
Service Registry からサービスを削除すると、そのサービスバインディングと仕様リンクも削除されます。ただし、仕様リンクに関連付けられていた付帯オブジェクトは削除されません。
仕様リンクで使用する付帯オブジェクトの作成方法の例については、 < INSTALL>/registry/samples/publish-service/src ディレクトリにある JAXRPublishService.java を参照してください。このサンプルは、レジストリに WSDL ファイルを発行します。