| 
        とにかく、サンプルを作製してみる。 
      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: ブラックリストにある 
      以上で、動作したようである。 
       
       |