Webサービス II (第10回) 2005年12月15日 http://www.wakhok.ac.jp/~tatsuo/ws2/ この時間の目標 JAXRによる UDDI ver 3 サーバへのアプ リケーションからのアクセス 1つのサーバに複数のクライアントから (本来のUDDIの利用形態) サーバはローカルに設置(実習時に指示) 登録( JAXRPublishOrg.java ) 削除( JAXRDelete.java ) UDDI Ver 2 から Ver 3 へ キーの定義の拡張 Ver 2 UUIDのみ サーバが登録時に生成 Ver 3 URNに一般化 urn:uddi-org:api_v2:public urn:uuid:469ea252-d39b-45ba-a863eb467f6ebcbf キーの拡張の結果 キーの生成はサーバのみでない 複数のサーバに登録可能 複数のサーバの連携が可能 なぜ JAXRが使えるのか? 従来の JAXRのAPIでアクセス可能! JAXRには拡張された形跡がない! JAXRは高度に抽象化された API サーバの実装(UDDI)に依存しない記述 *新サンプルでは実装依存が少し残る org.freebxml.omar.clietn.xml.registry. util.JAXRUtility クラス 検索のサンプル(1) 通信の開始 ConnectionFactory factory = JAXRUtility.getConnectionFactory(); Properties props = new Properties(); props.setProperty( “…..”, “url” ); factory.setProperties(props); Connection connection= factory.createConnection(); 検索のサンプル(2) サーバへの問い合わせ RegistryService rs = null; BusinessQueryManagerImpl qm = null; rs = connection.getRegistryService(); qm = (BusinessQueryManagerImpl) rs.getBusinessQueryManager(); BulkResponse response = qm.findObjects("RegistryObject", null, namePatterns, null, null, null, null); 検索のサンプル(3) 情報の取り出し Collection objects =response.getCollection(); Iterator objIter = objects.iterator(); while (objIter.hasNext()) { RegistryObject object = (RegistryObject) objIter.next(); Concept objType = object.getObjectType(); 登録のサンプル(1) 通信の開始(検索の場合と同じ) ConnectionFactory factory = JAXRUtility.getConnectionFactory(); factory.setProperties(props); connection = factory.createConnection(); 登録のサンプル(2) ただし、問い合わせと登録の両方の通信 Properties props = new Properties(); props.setProperty( "javax.xml.registry.queryManagerURL", queryUrl); props.setProperty( "javax.xml.registry.lifeCycleManagerURL", publishUrl); 登録のサンプル(3) 登録の操作(追加・削除)は BusinessLifeCycleManager を通じて BusinessLifeCycleManager blcm = rs.getBusinessLifeCycleManager(); Organization org = blcm.createOrganization( bundle.getString("org.name")); 実習の手順 ローカルなサーバを指定 http://10.16.128.31:8080/soar にアクセス %JWSDP_HOME%\reigistry\samples の下の commons に移動 共通の設定ファイルの確認と必要項目の追 加(build.properties, targets.xml) 通信先の情報を修正 JAXRExamples.properties build-properties (環境変数追加) container.home=z:/tomcat50-jwsdp jwsdp.home=z:/jwsdp-1.6 registry.home=z:/jwsdp-1.6/registry jaxp.home=z:/jwsdp-1.6/jaxp jaxr.home=z:/jwsdp-1.6/jaxr jaxb.home=z:/jwsdp-1.6/jaxb soap.home=z:/jwsdp-1.6/saaj targets.xml (クラスパス追加1) <fileset dir="${container.home}/common/lib"> <fileset dir= "${container.home}/common/endorsed"> targets.xml (クラスパス追加2) <fileset dir="${jaxr.home}/lib"> <include name="*.jar"/> </fileset> <fileset dir="${jwsdp.home}/jwsdp-shared/lib"> <include name="*.jar"/> </fileset> <fileset dir="${soap.home}/lib"> <include name="*.jar"/> </fileset> : : JAXRExamples.properties query.url=http://10.16.128.31:8080/soar/regi stry/soap publish.url=http://10.16.128.31:8080/soar/re gistry/soap #query.url=http://localhost:8080/soar/registry /soap #publish.url=http://localhost:8080/soar/regist ry/soap サンプルの実行例(検索) query-object-type (型で検索) コンパイル ターゲット名 compile (デフォルト) 実行 ターゲット名 run プロパティ type を通じて検索パターン ant run -Dtype=“Organization” サンプルの実行例(登録) Organizations (企業情報の登録、検索) (複数のプログラムで構成) コンパイル(一括でコンパイル) ターゲット名 compile (デフォルト) 実行 起動プログラムをターゲット名で指定 ant pub-org (企業情報の登録) JAXRExamples.properties に登録内容
© Copyright 2024 ExpyDoc