- - PR -
JAX-RPCを使っての動的なリモートメソッド実行の方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-11-10 16:20
お世話になります。
最近になってWebサービスを使ったRPCのお勉強をはじめました。 とりあえず以下のような環境で勉強しています。 【UDDIレジストリサーバ】 SUN JAVA WEB SERVICES DEVELOPER PACK 1.2 ※AS上で稼動しているWebサービスを登録ずみとします。 【アプリケーションサーバ(SOAPサーバ)】 SUN ONE Application Server 7 Platform Edition ※WSDLとSOAPで使用するIFなどを配置済みとします。 【SOAPクライアント】 Javaアプリケーション ※SOAPのスタブ経由でRPCを実行します。 アプリケーションサーバに付属していたサンプルを参考にして SOAPを使ったRPCが動作するようにはなりましたが 現時点では以下のようなコードを書いているため レジストリサーバから動的にサービス情報を取得してきて RPCを実行するということができていません。 ============================================================ try { String endpoint= "http://192.168.0.1/hello/helloworld?WSDL"; String UrlString = endpoint; String nameSpaceUri = "http://192.168.0.1/wsdl/HelloWorld"; String serviceName = "HelloWorld"; String portName = "HelloIFPort"; URL helloWsdlUrl = new URL(UrlString); ServiceFactory serviceFactory = ServiceFactory.newInstance(); Service helloService = serviceFactory.createService(helloWsdlUrl, new QName(nameSpaceUri, serviceName)); HelloIF myProxy = (HelloIF) helloService.getPort(new QName(nameSpaceUri, portName), samples.webservices.jaxrpc.proxy.HelloIF.class); System.out.println(myProxy.sayHello("Test Message")); } catch (Exception ex) { ex.printStackTrace(); } ============================================================ 上記のコードだと endpoint、nameSpaceUri、serviceName、portNameの 4つの情報があらかじめ分かっていないとRPCを実現できませんが できれば以下のような手順で実行したいと思っています。 (1)SOAPクライアントでレジストリサーバから登録サービスを検索 ↓ (2)サービスの情報(サービス名やWSDLを示すURL)を取得 ↓ (3)SOAPクライアントから2項のWSDLにアクセスし、サービスの詳細情報を取得 ↓ (4)サービスの詳細情報を基にライブラリ(JAX-RPC)が動的にスタブを生成して SOAPクライアントはスタブを使用してRPCを実現する。 やりたいことは以下のページに詳細されていた 「UDDI情報からダイナミック・バインディングに挑戦」という項目と 同様のことです。 http://www.atmarkit.co.jp/fxml/rensai/soap05/soap05d.html JAX-RPCで実現することは可能なのでしょうか...? また、実現方法をご存知の方がいらっしゃいましたら 教えていただけると助かります。 以上です。 よろしくお願いします。 | ||||
|
投稿日時: 2003-11-25 19:57
中込です。
JAX-RPC単体では、「UDDI情報からダイナミック・バインディング」に相当するインタフェースを持っていないため、できません。 JAX-RやUDDI4j等で(1)、(2)を、JAX-RPCの動的プロキシ方式を使って(3)、(4)をコーディングすれば、結果的には同様のことが可能になるといえるでしょう。 | ||||
|
投稿日時: 2003-11-25 22:49
山野です。
回答ありがとうございます。 やはりそうなるんですかぁ。 仕事が終わった後にヒマをみて勉強しているので ご回答いただいたようなカンジでコーディングすればいけそうかなぁって ところまでは感触がつかめていましたが、ご回答いただいたことで うまくいきそうな気がしてきたので試してみたいと思います。 試してみてうまくいったらサンプルソースも含めて 報告したいと思います。 ありがとうございました。 |
1