axis の研究

By Reinin Oyama

サンプルを作ってみる

 とにかく、サンプルを作製してみる。
PostgreSQL の axis というデータベースに、ips というテーブルを作製し、
そこに、私の掲示板に悪戯書きをしたIP のブラックリストを格納する。
そして、axis の Web サービスで、指定した IP アドレスがブラックリストに入っているかを
チェックすることにしよう。
echo 'create table ips ( ip text primary key );'|psql -U axis axis
とやって、テーブルを作成した。
後は、適当に copy などで、ブラックリストを読み込ませる。
私は、cron で、毎日1回更新する様にした。
blacklist.sql を crontab で次のように実行する。
SHELL=/bin/sh
# black list
0 0 * * * /usr/bin/psql -U axis axis < /var/lib/pgsql/blacklist.sql >/dev/null 2>&1

Eclipse3.2 を使って、プロジェクトblacklist を作製した。
これを、blacklist.zip に エクスポートし、
$TOMCAT_HOME/webapps/axis/WEB-INF/classes
の中で、unzip などで、解凍して配置する。
Tomcat か、axis かを再起動して、配置した クラスを認識させる。
次に、デプロイ用のwsddファイル deploy.wsddを作成した。
これを、デプロイするのだが、
org.apache.axis.client.AdminClient
を起動するのが、面倒なので、バッチファイル DEPLOYを作成した。
JAVA
TOMCAT
AXIS_LIB
は、環境に合わせて変更して頂きたい。
sh DEPLOY deploy.wsdd
を実行してデプロイする。
ちなみに、デプロイ解除は、
sh DEPLOY undeploy.wsdd
とする。
さあ、ちゃんとデプロイできたら、
http://yourip:8080/axis/services/BlackList?wsdl
(私は、http://hasiru.net/axis/services/BlackList?wsdl)
に、wsdl が、表示されるはずである。
(変なエラーが出たら Tomcat を再起動してからデプロイやアンデプロイをすると直ったりする)

では、今度は、クライアントを作製してみよう。
WSDL2Java で、stub と呼ばれる(変な名前マイクロソフトでは、ダミープログラムのこと)ものを
作製する。
これも、呼び出しが面倒なので、バッチファイル WSDL2JAVA を作製した。
sh WSDL2JAVA http://yourip:8080/axis/services/BlackList?wsdl
これで、
net/hasiru/axis/services/BlackList
に、クライアント用のインタフェースプログラムが作製された。
これを、そのまま、Eclipse のプロジェクトなどに、取り込んで
クライアントプログラムを作成する。
Eclipse で、jar ファイルをエクスポートして、blkclient.jar を作製する。
このとき、警告を出したものも出力するオプションを選ばないと、
JRE 5 以上を使っているとうまくいかない。
また、axis 1 シリーズの stub を扱うときは、コンパイラを 1.4 互換モードにしないと、enum でエラーになる。
(これは、止めて欲しいね)
とにかく、作製したのがこれ
また、起動が面倒くさいので、バッチファイルを作成した。
blkclient.jar と同じところに入れて、
sh BLKCLIENT 219.166.53.194
などとすると、
exit code ( echo $? ) で、結果が出る。
-1: エラー
0: 正常
1: ブラックリストにある
以上で、動作したようである。

前へ  次へ