トップ(最新)

nDiki

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 が出力される。成功。簡単。

スポンサード リンク


[ 8月29日全て ]

Related term

■よく検索されるキーワード

torrent(86) windows(43) x31(42) perl(39) 書き方(37) linux(29) mp980(27) 提案書(24) アジェンダ(24) 設定(24) usb(23) 手帳(21) thinkpad(21) 使い方(21) ドラマ(21) ganttproject(21) debian(19) gtd(19) 画像(18) cvs(16) 壁紙(14) 動画(13) ヨドバシカメラ(13) subversion(13) a6(13) dropbox(13) ssh(12) svn(12) 日本語(12) make(12) tc-1(12) java(12) 修理(12) インストール(11) ノート(10) mp3(10) 方眼(10) rcs(10) サンプル(10) ヨドバシ(10) ボールペン(9) c#(9) ダイソー(9) web(9) nsis(9) アジェンダとは(9) centos(9) メモリ(9) 評判(9) pdumpfs(8) ダウンロード(8) フィルム(8) リフィル(8) アレグラ(8) truecrypt(8) クラリチン(7) cgi(7) 無印(7) バッグインバッグ(7) 印刷(7) thinkingrock(7) hhkb(7) ai(7) デジカメ(7) 無線lan(7) google(7) コンポ(7) pixus(7) xampp(7) tortoisesvn(7) dvd(7) porter(7) af(6) ファイル(6) ガントチャート(6) xp(6) gmail(6) smtp(6) 生年月日(6) リポジトリ(6)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.321729s / load averages: 0.25, 0.25, 0.17
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)