nDiki : XML-RPC
XML-RPC
HTTP を利用した RPC の一つ。 リクエストとレスポンスは XML 形式にエンコードされる。
Perl 実装
- XMLRPC::Lite
- SOAP::Lite に含まれている
- RPC::XML
.NET Framework 実装
- XML-RPC.NET
- MIT X11 license
- http://www.xml-rpc.net/
スポンサード リンク
Related term
2004年8月29日 (日)
■ XML-RPC - Java クライアントと Perl サーバ

Java プログラムと Perl プログラムとの連携に XML-RPCが使えないか検討。 まずは実験。
@ Perl 側
RPC::XMLモジュールを使う。
#!/usr/bin/perl -w
use strict;
use RPC::XML::Server;
my $server = RPC::XML::Server->new(port => 9876);
$server->add_method( {name => 'Perl.eval',
signature => [ 'struct string' ],
code => sub { warn $_[1]; return {value => eval $_[1]}}});
$server->server_loop;
引数の文字列を eval した結果を文字列で返す危険な手続き。
@ Java 側
いろいろライブラリがあり迷う。 Apache XML-RPCが簡単そうなのでまずはこれで。1.2-b1 を使用。
import java.util.Vector;
import java.util.Hashtable;
import java.io.IOException;
import org.apache.xmlrpc.XmlRpcClient;
import org.apache.xmlrpc.XmlRpcException;
public class XMLRPCClient {
public static void main(String[] args) {
String url = args[0];
String methodName ="Perl.eval";
Vector params = new Vector();
params.add(args[1]);
try {
XmlRpcClient client = new XmlRpcClient(url);
try {
//String result = (String)client.execute(methodName, params);
//System.out.println(result);
Hashtable result = (Hashtable)client.execute(methodName, params);
System.out.println(result.get("value"));
} catch (XmlRpcException ex) {
System.out.println(ex.getMessage());
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Perl 側でプログラムを起動しておいて実行。
java -classpath .:xmlrpc-1.2-b1.jar \ XMLRPCClient http://localhost:9876/ "3 + 5"
8 が出力される。成功。簡単。
- RPC::XML のかわりに XMLRPC::Lite (2004-08-31)
- Twitter ベイジアンフィルタプロキシ (2007-12-29)
- 過去の今ごろ (2004-08-27)
- assertion (2004-05-16)
- Module::Build でソースパッケージング (2005-08-24)
2004年9月14日 (火)
■ XMLRPC::Lite + 自前の HTTP::Daemon サーバ

既に HTTP::Daemon で作成されているHTTPサーバで、XML-RPC インタフェースを提供したい。 前回のチェックで XMLRPC::Lite を使う事にした(RPC::XML は ActivePerl 5.6.1 build638 でテストが通らない)。 このパッケージで用意されているサーバ向けモジュールは、主に単独CGI プログラムで使うモジュールと、自前で HTTP::Daemon をまわすサーバタイプ。
そのままでは使えないので、以下のように。
- XMLRPC::Transport::HTTP::CGI のサブクラスを作成し、handle をオーバライドする。中身は SOAP::Transport::HTTP::Server::handle を呼ぶだけ (SUPER::handle では駄目)。
- XML-RPC リクエストがきたら、上記インスタンスの request メソッドで HTTP::Request オブジェクトを渡す。
- handle を実行。
- response メソッドで HTTP::Response を受け取り、クライアントに送信。
handle メソッドで入出力をさせないようにするのがポイント。
- 今日のさえずり - 英辞郎で英辞郎を検索 (2010-03-12)
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- HTTP::Daemonベースのプログラムのテスト (2004-11-26)
- RPC::XML のかわりに XMLRPC::Lite (2004-08-31)
- www.naney.org に「友人・知人に紹介メール」ページを新設 (2000-12-27)
2007年10月19日 (金)
■ 今日のさえずり - え? ラミヤータ閉店なの?

- 11:36 え? ラミヤータ閉店なの?
- 12:12 セブン-イレブンの豚焼肉弁当、肉がパスタで底上げされているのに気がつかないで買ってきた。 *Tw*
- 13:49 Firefox 2.0.0.8 にしたので keyconfig 入れなおした。 *Tw*
- 16:04 XML-RPC で struct->member->name 値を可変値とする(連想配列的に使う)仕様だと、言語によっては面倒だということに今頃気がつく。 *Tw*
- 18:11 「るるぶ品川区」まずは立ち読みしてみたい。 *Tw*
- 今日のさえずり - 紳士服屋の完全閉店は信用ならない (2008-06-14)
- 今日のさえずり - 「意味わかんない」っていうセリフが伝染しないように (2010-02-19)
- 今日のさえずり - Twitter 割引を実施する大井町のすし処さいしょ (2010-02-04)
- 今日のさえずり - 入り口に盛り塩? (2010-02-15)
- 今日のさえずり - キリンの力水、オフィスの女性陣の誰にも通じない (2010-02-05)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.022761s / load averages: 0.15, 0.25, 0.28
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。