うかうか暇つぶし Web小ネタ >S2XML-RPCを使って、更新pingを送信してみました。(更新ping受信サーバ作成その2)
受信のテストに使用してみただけですが、一応紹介。

JUnitを使用しています。
が、特にテストになっているわけではなく、単に更新Pingサーバに接続してみるだけです。実行するのが簡単なのでこうしてます。

まず、クライアント用のdicon設定です。

client.dicon


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<include path="s2xmlrpc.dicon"/>

<component name="remoting"
class="org.seasar.remoting.common.interceptor.RemotingInterceptor">
<property name="connector">connector</property>
</component>

<component name="connector"
class="org.seasar.remoting.xmlrpc.connector.XmlRpcConnector">
<property name="baseURL">baseURL</property>
</component>

<component name="baseURL" class="java.net.URL" autoBinding="none">
<arg>"http://localhost:8080/xmlrpc/ping"</arg>
</component>

<component name="weblogUpdates" class="net.ukauka.xmlrpc.service.WeblogUpdatesService">
<aspect>remoting</aspect>
</component>
</components>



設定自体はS2XML-RPCのチュートリアルのままですので、変更するのはbaseURLの設定ぐらいです。ここに接続先のURLを設定します。
後、接続するメソッドに対応するインタフェースをcomponentとして記述しておきます。
aspectにremotingと設定します。

次に実際に接続を行うクラスの作成です。
S2TestCaseを使用していますのでこのクラスをJUnitで実行で試すことが出来ます。

WeblogUpdatesServiceTest.java


package net.ukauka.test.xmlrpc;

import java.util.Map;

import net.ukauka.xmlrpc.service.WeblogUpdatesService;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.seasar.extension.unit.S2TestCase;

public class WeblogUpdatesServiceTest extends S2TestCase {

protected Log log = LogFactory.getLog(this.getClass());

public WeblogUpdatesServiceTest(String name) {
super(name);
}

public void setUp() {
include("client.dicon");
}

public void testPing() {
log.debug("start");

WeblogUpdatesService service =
(WeblogUpdatesService) getComponent("weblogUpdates");

String name = "うかうかダイエット";
String url = "http://diet.ukauka.net/";

Map result = service.ping(name, url);

log.debug(result);
}
}



特に難しい点はありません
WeblogUpdatesService service =
(WeblogUpdatesService) getComponent("weblogUpdates");

で接続するメソッドに対応したサービスを取得し、

Map result = service.ping(name, url);

メソッドを実行するだけです。
これだけで更新pingを送信することが出来ます。

返り値はMapになっています。messageとflerrorが設定されています。
messageは適当なメッセージが入っています。flerrorは正常終了でfalse、エラーの場合にtrueが入っています。

私が作成した更新pingサーバのmessageは「ok」なんてそっけない感じにしていますが、googleの更新pingサーバなんかですと「Thanks for the ping.」なんて返してきます。

あと、HTMLを取得してrssのURLを取得して、rssから最新の記事情報を取ってきて、データベースに登録する。
というところまでは作ってみたんですが、それについては記事をわけます。
posted by ふっち at 19:43 | Comment(0) | TrackBack(0)
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/98854196

この記事へのトラックバック