Squeakあれこれ

Squeak関連情報など

[Squeak][N7]XML-RPCサーバを動かす(1)

2005-04-01 | squeakあれこれ
なにをいまさらSqueakでXML-RPCサーバかと思われますが(実際多数の実装実績がある)、まぁスキルアップってことで。

まずXML-RPCサーバをインストールします。今までのおさらいの意味を含めてYAXO(XML-Parser)からのインストール方法を下記に示します。

  1. YAXOをSqueakMapよりインストール
  2. Spy-XML-RPCを試すを参考にSpy-XML-RPCをインストール
  3. Comanche/httpserverをインストールしてみるを参考に'Comanche/httpserver'をインストール
  4. Squeak SWikiよりXMLRPC-Server-mfrit.mczをダウンロードしてファイルリストよりインストール(SqueakMapではインストールに失敗する)

インストールはこれでOKのはずです。

次に下記に示すテスト用のクラスを作成します。これはRPCのAPIを実装するクラスとなるもので、文字列を引数にしてそれを評価した結果を返す、test.evaluateというAPIを用意します。
XMLRPCmyTest.st
詳細は次回で説明します。

HTTPサーバを起動します。
| ma xmlrpc |
xmlrpc := XMLRPCHttpModule new.
ma := ModuleAssembly core.
ma serverRoot: FileDirectory default fullName.
ma alias: '/xmlrpc' to: [ma addPlug: [:request | xmlrpc process: request]].
ma documentRoot: FileDirectory default fullName.
ma directoryIndex: 'index.html index.htm'.
ma serveFiles.
(HttpService startOn: 8080 named: 'httpd') plug: ma rootModule

Spy-XML-RPCで先ほどのAPIを実行します.次の内容をprint itします。
| url proxy |
url := Url absoluteFromText: 'http://localhost:8080/xmlrpc/'.
proxy := XMLRPCProxy withUrl: url.
proxy 
	invokeMethod: 'test.evaluate' withArgs: #('2 + 3')

どうですか?意外と簡単でしたね。次回は上記の内容を少し詳しく説明します。

最新の画像もっと見る