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)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- ハッシュとは (2004-06-09)
- SQLite とか DbUnit とか (2005-05-23)
- 過去の今ごろ (2004-08-27)
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 メソッドで入出力をさせないようにするのがポイント。
- 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)
- ハイパー日記システム と Log::Log4perl (2004-06-07)
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)
- でかカール チーズ味 おまけつき - 誕生日プレゼント (2006-04-26)
- 今日のさえずり - 本心はベランダへの上げ下げが面倒だから (2008-09-07)
- DVD ミカンせいじんチルドレン (2006-01-19)
- 今日のさえずり - Amazon.co.jp でママレモン売ってる (2008-10-16)
スポンサード リンク
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.220739s / load averages: 0.15, 0.13, 0.14
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク