Webサービス II (第8回) 2005年12月1日 http://www.wakhok.ac.jp/~tatsuo/ws2/ この時間の目標 新しい Service Registry の理解 JAXRによるアプリケーションからのアクセ ス(前回との比較) 古いサンプル %JWSDP_HOME%\jaxr\samples 新しいサンプル %JWSDP_HOME%\registry\samples UDDI Ver 2 から Ver 3 へ キーの定義の拡張 Ver 2 UUIDのみ サーバが登録時に生成 Ver 3 URNに一般化 urn:uddi-org:api_v2:public urn:uuid:469ea252-d39b-45ba-a863eb467f6ebcbf URL, URI, URN URL(Universal Resource Locator) 実際のリソースの保存場所の指定 http://www.wakhok.ac.jp/index.html URI(Universal Resource Identifier) 世界で唯一の存在の「目印」 <wakhok:doc xmlns:wakhok= http://www.wakhok.ac.jp/public > URN(Universal Resource Name) 世界で唯一の名前(場所ではなく名前) キーの拡張の結果 キーの生成はサーバのみでない 複数のサーバに登録可能 複数のサーバの連携が可能 もう1つの目玉 ebXML e-business のためのXMLの標準化 http://www.ebxml.org/ 新しい Service Registry は ebXML 3.0 にも対応 なぜ JAXRが使えるのか? 従来の JAXRのAPIでアクセス可能! JAXRには拡張された形跡がない! JAXRは高度に抽象化された API サーバの実装(UDDI)に依存しない記述 抽象化の例(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(); 実習の手順 JWSDPのTomcatの起動 http://localhost:8080/soar にアクセス %JWSDP_HOME%\reigistry\samples の下の commons に移動 共通の設定ファイルの確認と必要項目の 追加(build.properties, targets.xml) 各サンプルのサブディレクトリに移動 ant によるコンパイルと実行 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> : : サンプルの実行例(1) query-name (名前のパターンで検索) コンパイル ターゲット名 compile (デフォルト) 実行 ターゲット名 run プロパティ name を通じて検索パターン ant run -Dname=“Japan” ant run -Dname=“Ja%” サンプルの実行例(2) query-object-type (型で検索) コンパイル ターゲット名 compile (デフォルト) 実行 ターゲット名 run プロパティ type を通じて検索パターン ant run -Dtype=“Organization” サンプルの実行例(3) Organizations (企業情報の登録、検索) (複数のプログラムで構成) コンパイル(一括でコンパイル) ターゲット名 compile (デフォルト) 実行 起動プログラムをターゲット名で指定 ant pub-org (企業情報の登録) JAXRExamples.properties に登録内容 サンプルの実行例(4) delete-object (情報の削除) 実行 ターゲット名 run プロパティ id を通じてオブジェクトのキー ant run -Did= "urn:uuid:469ea252-d39b-45ba…” キーの値は登録時に表示 or ブラウザで 登録や削除をブラウザでも確認 キーの値は Details をクリック Organization の登録数を確認
© Copyright 2024 ExpyDoc