nDiki

2004年8月31日 (火)

RPC::XML のかわりに XMLRPC::Lite

Windows の ActiveState 5.6.1 では RPC::XML の make test が通らない。 がっかり。 かわりに、SOAP::Liteに入っている XMLRPC::Lite を使ってみる。

 #!/usr/bin/perl -w

 use strict;
 use SOAP::Lite +trace => qw(trace);
 use XMLRPC::Transport::HTTP;

 my $daemon = XMLRPC::Transport::HTTP::Daemon
   ->new(LocalPort => 9876)
   ->dispatch_to('Server');

 $daemon->handle;

 package Server;

 sub evalcode {
   warn $_[1];
   return +{ value => eval $_[1] };
 }

 1;

名前の関係から Perl.eval を Server.evalcode に変更した以外は、RPC::XMLの実験の時と一緒。 クライアントは前回の Java プログラム(メソッド名のみ上記のように修正)。

こちらは ActiveState 5.6.1 でも動作。一部ライブラリが warning を出す以外いまのおころ問題無し。Linux 環境でも warning は出る。ライブラリの undefined 扱いの問題のようだ。実害は無さそう。 SOAP::Lite を 0.55 から 0.60a に上げると少し warning が減る(無くならない)。

機能的には RPC::XML の方が使いやすそうだが、SOAP::Lite の方がメジャーという強みがある。ActivePerl 5.6.1 にも標準でバンドルされているし。

[ 8月31日全て ]

About

Process Time: 0.069615s / load averages: 0.71, 0.56, 0.47