XML-RPC してみる

XML-RPC は簡単に言ってしまえば...
インターネット上のサービスを簡単に実行するための仕組み。
もちろん サーバとのやり取りには XML を使う。
当然、サービスを提供する側が XML-RPC に対応していないとダメ。

XML-RPC の良いところは、

  • REST と違い ちゃんと仕様が決まっていること。
  • SOAP と違い 仕様が複雑でないこと。
ではないだろうか。

これは、ライブラリを作る上では非常に重要な要素で、実際 XML-RPC は多くの言語で実装されている。
もちろん、JavaFX で使えるライブラリも存在する。
と言っても、Java のライブラリなのだが...
既存の Java ライブラリがそのまま利用できるのも JavaFX の良いところかな。

今回は、Apache XML-RPC 3.1.2 を使ってみることに...
プロジェクトページは こちら

まずは Apache XML-RPC をダウンロードして、解凍したファイルの中から

  • ws-commons-util-1.0.2.jar
  • xmlrpc-common-3.1.2.jar
  • xmlrpc-client-3.1.2.jar
をクラスパスに通しておく。

基本的な使い方はこんな感じ...

import java.net.URL;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;

// URL 設定
def config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://b.hatena.ne.jp/xmlrpc"));

// XmlRpcClient 生成
def client = new XmlRpcClient();
client.setConfig(config);

// はてなブックマーク件数取得API 実行
// 第一引数: メソッド名
// 第二引数: パラメータ (配列)
println(client.execute("bookmark.getTotalCount", [ "http://d.hatena.ne.jp/bluepapa32/" ]));
リフレクションを使ってメソッドを invoke するのとほぼ同じで とっても簡単!!
今回は 最も簡単と思われる XML-RPC のサービス
はてなブックマーク件数取得API
を実行して、(とっても少ない...) 本ブログのはてなブックマークの数を標準出力してみた。

XML-RPC のことなんて何も知らなくても
たった 5行のコードを書くだけで 誰でも WEB サービスを実行できてしまうのだ。

このように とっても簡単な XML-RPC ではあるが、JavaFX で利用する上で気を付けなくてはならない点もある。
それは また次回...