プログラム

(秘)JavaServlet技法

初心者から上級者まで。Java言語によるプログラミングの真髄をレクチャーします。Webシステム開発のエキスパート「株式会社 慶」が発行。

全て表示する >

(秘)JavaServlet技法

2004/01/05

**************************************************************************
_/_/_/_/_/_/_/_/_/_/_/_/_/  (秘)JavaServlet技法  _/_/_/_/_/_/_/_/_/_/_/_/
**************************************************************************
第86号  2004/01/05 発行現在の購読者数:4635
  ▼  Servlet技法:第86回
  ▼  コラム
  ▼  次回予告
  ▼  編集後記
  ▼  編集長からのお知らせ

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  Servlet技法:第86回
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
新年あけましておめでとうございます。

お久し振りです。長らく発行が途絶えてしまい申し訳ございません。
10月より編集部一同が関わっているプロジェクトが本格的に始動し、それに伴い
各編集者の作業が遅れてしまい、メルマガ発行を途絶えさせてしまうという結果
になってしまいました。

年も新しくなり、編集部も心新たに頑張りますので、今後ともよろしくお願い致
します( ^.^)( -.-)( _ _) ドウモ
途絶えてしまったにも関わらず解約なさらなかった読者には感謝です\(^▽^@)ノ
では、今年最初のメルマガ行ってみましょうo(^▽^)o

【前回までの補足】
// WSDL 作成
java org.apache.axis.wsdl.Java2WSDL -o HelloService.wsdl -l
"http://localhost:8080/axis/services/urn:HelloService" -n
"urn:HelloService" -m "sayHello" HelloService

// クライアントのスタブ作成
java org.apache.axis.wsdl.WSDL2Java -p stub HelloService.wsdl


// WSDL生成
java org.apache.axis.wsdl.Java2WSDL -o KakezanService.wsdl -l
"http://localhost:8080/axis/services/urn:KakezanService" -n
"urn:KakezanService" -m "doKakezan" KakezanService


// スタブ作成
java org.apache.axis.wsdl.WSDL2Java -p stub KakezanService.wsdl

前回はWebサービス版「HelloWorld!」をスタブを使用して開発する方法を
学びました。今回はクライアントに渡した引数をそのまま返すのではなく、
もう少しだけサービスらしくクライアントに渡した引数に応じた回答を返す
サービスを作成してみます。
大まかな流れは以下の通りです。

1.開発環境作成
2.サービスの作成
3.デプロイ
2.WSDLの作成
3.スタブの作成
4.クライアントプログラムの作成
5.実行

◆開発環境作成
 今回作成するサービスのために、新たにフォルダを作成します。

・フォルダ作成
  C:\axis-1_1\KakezanService

・環境変数の設定
  cd C:\axis-1_1
  env.bat

・動作確認
 第2回で行ったTomcatの起動確認、AxisとTomcatの連携確認を行います。

 ※うまく起動確認が出来なかった方は前回の記事を参考にしてください。
    「http://www.kei-ha.co.jp/magweb/magweb0002.html


◆サービスの作成
・HelloServiceファイルの作成
 今回作成するのは、2つの数字を渡すと、その2つの数字を掛け算し
その結果を返すというサービスです。
以下のプログラムををC:\axis-1_1\KakezanServiceに配置して下さい。

【KakezanService.java】--------------------------------------------------
public class KakezanService {
    public String doKakezan(String a, String b) {
        return Integer.toString(
            Integer.parseInt(a) * Integer.parseInt(b)
        ) ;
    }
}
-------------------------------------------------------------------------

・KakezanServiceのコンパイル
  cd C:\axis-1_1\KakezanService
  javac KakezanService.java

・KakezanServiceの配置
  作成したKakezanServiceクラスをTomcat、Axisから実行させるために
  KakezanServic.classを
  C:\jakarta-tomcat-4.1.27\webapps\axis\WEB-INF\classesに配置してください。


◆掛け算サービスのデプロイ
・デプロイ用WSDDファイルを作成
 前回、使用したデプロイ用のWSDDファイルとほぼ同じですが、今回作成した
サービスにあわせ、数箇所修正を加えます。
変更箇所は、
 ・Service要素のname属性
 ・一つ目のParameter要素のvalue属性
 ・二つ目のParameter要素のvalue属性
の3箇所です。

  以下のプログラムをC:\axis-1_1\KakezanService\deploy.wsddに
  配置して下さい。
【deploy.wsdd】-----------------------------------------------------
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
  xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <service name="urn:KakezanService" provider="java:RPC">
    <parameter name="className" value="KakezanService" />
    <parameter name="allowedMethods" value="doKakezan" />
  </service>
</deployment>
-------------------------------------------------------------------------

・デプロイ(Webサービスの公開)
  以下のコマンドを実行しデプロイを行ってください。
  cd C:\axis-1_1\KakezanService
  java org.apache.axis.client.AdminClient -p 8080 deploy.wsdd

・デプロイの確認
  http://localhost:8080/axis/servlet/AxisServletとURL入力して下さい。
  urn:KakezanService、doKakezanが表示されることを確認


◆WSDLの作成
  前回同様、Java2WSDLを使用してWSDLファイルを生成します。

・WSDLファイル作成
  cd C:\axis-1_1\KakezanService
  java org.apache.axis.wsdl.Java2WSDL -o KakezanService.wsdl -l
  "http://localhost:8080/axis/services/urn:KakezanService" -n
  "urn:KakezanService" -m "doKakezan" KakezanService

・WSDLファイル作成確認
  C:\axis-1_1\KakezanService内にkakezanService.wsdlが作成されることを
  確認します。

◆スタブの作成
 こちらも前回と同じように「WSDL」から「スタブ」を作成します。

・スタブの作成
  cd C:\axis-1_1\KakezanService
  java org.apache.axis.wsdl.WSDL2Java -p stub KakezanService.wsdl

・スタブの確認
  以下の4ファイルが作成されている事を確認します。
  KakezanService.java
  KakezanServiceService.java
  KakezanServiceServiceLocator.java
  UrnKakezanServiceSoapBindingStub.java

・スタブのコンパイル
  cd C:\axis-1_1\World
  javac stub\*.java

◆クライアントプログラムの作成(KakezanClient)
・KakezanClientファイルの作成
  以下のプログラムををC:\axis-1_1\KakezanServiceに配置して下さい。

【KakezanClient.java】----------------------------------------------------
public class KakezanClient {
    public String doKakezanHelper(String a, String b) throws Exception {
        stub.KakezanService port =
            new stub.KakezanServiceServiceLocator().getUrnKakezanService() ;
        String result = port.doKakezan(a, b) ;
        return result ;
    }

    public static void main(String args[]) {
        try {
            KakezanClient client = new KakezanClient() ;
            String result = client.doKakezanHelper(args[0], args[1]) ;
            System.out.println(result) ;
        }
        catch(Exception e) {
            e.printStackTrace() ;
        }
    }
}
-------------------------------------------------------------------------

・KakezanClientのコンパイル
  cd C:\axis-1_1\KakezanService
  javac KakezanClient.java

◆実行
・Tomcatの起動
  Tomcat起動用バッチファイルを実行して下さい。
  cd C:\axis-1_1
  start.bat

・KakezanClientファイルの実行
  cd C:\axis-1_1\KakezanService
  java KakezanClient 2 3
  ※「6」と表示されれば成功です。


◆ポイント
  いかがだったでしょうか?前回の作成したサービスはそのままクライアントから
渡された文字列を返すだけでしたが、引数として渡した2つの数字に応じてさまざ
まな結果を返します。
生成されたWSDLファイルを見て、渡されるパラメーターが増えた場合のファイルの
変化を見てるのも良いと思います。

  今回のサービスではクライアントから渡されたパラメーターの入力チェックが含
まれていません。エラー処理や入力チェックを怠ると、開発者が意図していなかっ
た動作を起こし危険です。WebアプリケーションやWebサービスなどを作成する際は
十分に気をつけなければならない点です。

----☆PR☆--------------------------------------------------------------
  オブジェクト指向を勉強したい!,Javaを勉強したい!
  メールマガジン『JavaScript&Javaで目指そう!基本情報技術者試験』
を購読してますか?  (無料)執筆は,宿題メールでおなじみの斎藤末広
  登録  http://www.mag2.com/m/0000066251.htm
  詳細  http://www.3721p.com/java/jmaga/
---------------------------------------------------------------☆PR☆---

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  コラム
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
【携帯電話とJava】
非接触型のICチップ(JRのスイカのチップですね)がいよいよ携帯電話にも搭載
されるようです。今年の末から試行して来年夏には商品化されるとのこと。
電車の切符や、映画館などのチケット代わりとか、タイムカード代わりにもなる
そうです。
前々から、携帯で電車に乗れたら便利だなあと思っていたのですが、こんなに早
く現実になるとは驚きです。
携帯電話といえば、Sunの発表によると、Javaを使ったモバイル機器の出荷台数が
1億2000万台を超えたそうです。赤ちゃんからおじいちゃんおばあちゃんまで、
日本人のほぼ全員がJavaのモバイル機器を持っている計算になりますね。すごい。
さらにSunはTIと提携して、第3世代携帯電話ネットワーク用にJavaベースのワイ
ヤレスアプリケーションの開発を始めるそうです!
携帯電話からも、Javaからも、ますます目が離せなくなりそうです!
(まき)

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  次回予告
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  □  Servlet技法:87回
  □  コラム
  □  次回予告
  □  編集後記
  □  編集長からのお知らせ
      次号は、01月13日発行予定です。乞うご期待!!
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  編集後記
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
いはや、年あけちゃいました。
去年は無我夢中に突っ走った年だった気がします。
でも、去年は去年でよい年にできたかな♪
今年も自分なりの抱負を持って突っ走っていこうと思います!
読者のみなさんもなにかしらの目標・抱負を持って頑張ってくださいね☆
そんなこんなな、りんこですが今年もよろしくですヾ(▽^

by りんこ
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
              *  *  *  編集長からのお知らせ  *  *  *

 本誌を発行している株式会社慶(KEI)が
「日経BPエキスパート」の【注目企業】に採り上げられました。ご笑覧下さい^^;
 http://ex.nikkeibp.co.jp/company/c20030710.shtml

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
◆━◇ PR ◇━◆
□■□-----------------------------------------------------------------
■◇■モバイルコマースなら「K-CODE」http://kcode.jp/kcode/index.html
□■□-----------------------------------------------------------------

  ┏━━━━━━━━━━━━┓
  ┃携帯メルマガサイト誕生!┃
  ┗━━━━━━━━━━━━┛
  ☆☆☆お気楽"無料"マガジンサイト『プッチマガ』☆☆☆
  登録も配信もラクラク♪3分でメルマガ配信できちゃう!

  ●●●今週のオススメ『プッチマガ』●●●
  真のSEに贈る、品質管理のノウハウ集
  【品質の番人】!これまで誰も書かなかった
  「システムの品質を実現する方法」を具体的に伝授します。
  登録はもちろん無料!毎週火曜日発行です。

  ↓メルマガ購読&登録はコチラ
  http://kcode.jp/pmag/index.html 提供:株式会社慶
----------------------------------------------------------------------
  ┏━━━━━━━━━━━━━┓
  ┃あなたのソースを再チェック┃
  ┗━━━━━━━━━━━━━┛
  ☆KSCCでJava、HTML、SQL等々ソースコードを総チェック!☆
  ・性能劣化の原因となるロジックの自動検出機能
  ・プログラムのステップ数計測(Javaは実ステップ数も)
  etc。。他にも機能満載!↓無料お試し&ご注文はコチラ
  ☆近々バージョンアップ予定!☆
  http://kcode.jp/shop/ks 提供:株式会社慶
----------------------------------------------------------------------
  ┏━━━━━━━━━━━┓
  ┃ソフトウェア業界航海術┃
  ┗━━━━━━━━━━━┛
  ソフトウェア業界の本質をまとめました
  「皆に読ませちゃいました」(某中小ソフトウェア会社社長)
  「初めて知ったことが多かった。」(某フリーSE)
  「こういう視点で書かれた本は他にない。」(某フリーSE)
   http://kcode.jp/shop/ks 提供:株式会社慶
----------------------------------------------------------------------
  ┏━━━━━━━━━━━━┓
  ┃航空ファン要チェック!!┃
  ┗━━━━━━━━━━━━┛
  ♪♪♪航空祭でも出店中!♪♪♪
  新作続々登場!ダイキャストモデルも完成しました!
  T-シャツからお子様用飛行服まで豊富な品揃え!
  一度遊びにきて下さいね♪
   http://kcode.jp/shop/bluemax 提供:BlueMax
----------------------------------------------------------------------

∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞

                  このメールマガジンは、

                  まぐまぐ
                  http://www.mag2.com/

                  melma!
                  http://www.melma.com/

                  Macky
                  http://macky.nifty.com/index.htm

                  カプライト
                  http://kapu.biglobe.ne.jp/index.html

                  を利用して発行しています。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
        「(秘)JavaServlet技法」は株式会社慶が発行しています。
                  http://www.kei-ha.co.jp/mag.html
             ご意見・ご質問等はこちら→mag@kei-ha.co.jp
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

規約に同意してこのメルマガに登録/解除する

メルマガ情報

創刊日:2001-10-02  
最終発行日:  
発行周期:毎週月曜発行  
Score!: - 点   

コメント一覧コメントを書く

この記事にコメントを書く

上の画像で表示されている文字を半角英数で入力してください。

※コメントの内容はこのページに公開されます。発行者さんだけが閲覧できるものではありません。 コメントの投稿時は投稿者規約への同意が必要です。

  • コメントはありません。