Hatena::Grouprubyist

irykazeの日記 このページをアンテナに追加 RSSフィード

2009-08-20RubyでSOAP (2)

[] CXFのsamplesのruby_spring_supportを試してみる。 10:10  CXFのsamplesのruby_spring_supportを試してみる。 - irykazeの日記 を含むブックマーク はてなブックマーク -  CXFのsamplesのruby_spring_supportを試してみる。 - irykazeの日記  CXFのsamplesのruby_spring_supportを試してみる。 - irykazeの日記 のブックマークコメント

Apache CXFというjava製のSOAPスタックがあるのですが、これにはrubyを使用したサンプルもついています。

このサンプルは、RubyでWebサービスプロバイダ(サーバ側)を作るというサンプルです。


なるほど。

つまり、RubySOAPとかやりたいんだったら、jrubyでがんばれっていうのが、現実解のようです。


JavaEEでは、JAX-WSで「WSDL<->Java(Webサービスの実装)」のマッピングルールが策定されたり、JAXBで「JavaBean<->XML」のマッピングをするためのアノテーションとかが策定されてたりするので、Webサービスを実装する環境が整っています。

なので、Rubyもそれに乗っかるのがよさそうです。

やっぱり、SOAっていうのは、膨大な仕様群(WS-*とか、WS-I Basicとか、WSDLSOAPとか、そもそもXMLとか)を用いてやるものみたいなので、実現するには大量にリソースが必要っぽいです。


なので、rubyの哲学である「巨人の肩に乗る」方向で、SOAPとかも頑張るのが賢明なようです。



あとは、jrubyでアノテーションをいじる方法が分かれば、かなりの部分をRubyでがんばれそうな予感がします。

(追記)

以下の記事で、jrubyrubyのクラスにアノテーションを追加する方法が紹介されてました。

http://blog.headius.com/2007/05/adding-annotations-to-jruby-using-ruby.html

2008-08-06ruby で SOAP

[]ruby 1.8.6にバントルされているsoapパッケージは、soap4rのことらしい。 14:03 ruby 1.8.6にバントルされているsoapパッケージは、soap4rのことらしい。 - irykazeの日記 を含むブックマーク はてなブックマーク - ruby 1.8.6にバントルされているsoapパッケージは、soap4rのことらしい。 - irykazeの日記 ruby 1.8.6にバントルされているsoapパッケージは、soap4rのことらしい。 - irykazeの日記 のブックマークコメント

でも、rubyの公式ドキュメントのsoapの項には、あんまり使い方が書いてない。

仕事でsoapを使う機会があるので、rubysoapができるようになっておきたい。

なので、今回はsoap4rのドキュメントのブックマークをメモしておく。


なお、soap4rに付属する、wsdl2rubyなどのコマンド群は、

gem install soap4r

で、インストール可能。

ちなみに、gemでインストールしたsoap4rのクラスを使いたい場合には、ソースコードに以下のような記述をするといいようです。

require 'rubygems'
gem 'soap4r'
require 'soap/rpc/driver' # and so on
require 'soap/wsdlDriver'

(以下、各種ドキュメントへのリンク)

soap4r
http://dev.ctor.org/soap4r (下のほうに、日本語で書かれた記事のリンクもあります)
soap4r:ja(作者が書いた、日本語のチュートリアル)
http://dev.ctor.org/soap4r/wiki/soap4r%3Aja
@nifty:@homepage:エラー
http://homepage2.nifty.com/hippos/soap4r/top.html (WSDLの書き方から、rubysoapサーバを作るところまで書いてある)


soap4rの基本的なAPIの使い方をつかむなら、始めにno titleを読むのがいいと思います。

日本語のチュートリアルでもいいかもしれません。

(ただ、日本語のチュートリアルは、Webサービスが動いてなかったりして、うまく動かないかも)

その後、Site Not Configured | 404 Not FoundHowtosを当たってみると、詳しい使い方が調べられると思います。


(追記)

xmlrpc4rを使って、XML-RPCを利用するっていうほうが、WEBサービスを作りやすいらしい。

Rubyist MagazineにRubyist Magazine - 標準添付ライブラリ紹介 【第 1 回】 XMLRPC4Rという記事が載っていたりするので、ドキュメントも豊富です。


(追記その2)

soap4rを使っている人がいたので、エントリへのリンクを張らせてもらいます。

http://d.hatena.ne.jp/GARAPON/20081120/1227182606