■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                      2009年01月18日

    Java総合講座 - 初心者から達人へのパスポート
                  vol.136

                                セルゲイ・ランダウ
 バックナンバー: http://www.flsi.co.jp/Java_text/
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


[このメールマガジンは、画面を最大化して見てください。]


========================================================
◆ 01.SOAPのアプリケーション(Webサービス)
========================================================


では、これらのファイルからWSDLファイルを自動生成させることにしましょう。
そのために、まず、Antのビルド・ファイルを作成しましょう。
今回は、WSDLファイルを自動生成させるとともに、そのWSDLファイルからJava
のソース・ファイルやWSDDファイルの自動生成まで行うビルド・ファイルを
作成してみます。


今回は、Eclipseに内蔵されているAntを使用することにします。

まず、Eclipseを起動し、以下の手順でビルド・ファイルを作成してください。

(1) パッケージ・エクスプローラーの中のJStudySOAP(プロジェクト)を右クリッ
クし、「新規」→「ファイル」を選択します。

(2) 「新規ファイル」ウインドウにおいて「ファイル名」に
build.xml
と入力し、「終了」ボタンをクリックします。

(3) build.xmlファイルが開くので、下記のような内容を入力します。
なお、ここでもコンテンツ・アシスト(Ctrl + スペース・キー)の機能が使える
ので、入力が楽になります。このように、Eclipseに内蔵されたAntを使用すると、
付加的な機能が使えるので便利です。
(詳しくは、ヘルプ(メニュー・バーの「ヘルプ」→「ヘルプ目次」を選択し、
「Workbench User Guide」→「Getting started」→「Ant & external tools tutorial」
→「Eclipse Ant basics」→「Editing Ant buildfiles」)を参照して下さい。)

--------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
 <project name="WebServices Deploy" basedir="." default="wsdl2java">
   <property file="build.properties" />

   <path id="axis.classpath">
     <fileset dir="${axis.dir}/lib">
        <include name="**/*.jar" />
      </fileset>
   </path>
  
   <taskdef resource="axis-tasks.properties" classpathref="axis.classpath" />
  
   <mkdir dir="${work.dir}"/>

   <target name="java2wsdl">
     <axis-java2wsdl
      classname="jp.co.flsi.lecture.soap.hotelinterface.Hotel"
      location="http://localhost:8080/axis/services/Hotel"
      namespace="http://hotel.webservice.lecture.flsi.co.jp/"
      output="${local.wsdl}" >
        <classpath>
          <pathelement path="${classes.dir}"/>
        </classpath>
     </axis-java2wsdl>
   </target>

   <target name="wsdl2java" depends="java2wsdl">
     <axis-wsdl2java
      output="${sources.dir}"
      serverside="true"
      url="${local.wsdl}" >
     </axis-wsdl2java>
   </target>
 </project>
--------------------------------------------------------

ここで、mkdirというのは、ディレクトリー(フォルダー)を生成するタスクで、
dir属性に指定したディレクトリーを作成してくれます。(ちなみに、mkdirのよう
な、Antの標準的なタスクであれば、そこにカーソルを置いてShift + F2キーを押す
と、Eclipseが該当するマニュアルのWebページを表示してくれます。)
ここでは、

<mkdir dir="${work.dir}"/>

というようにdir属性にwork.dirプロパティーを指定しているので、work.dirプ
ロパティーの値として指定されているディレクトリーが作成されることになり
ます。
ここでは、事前に作業用のディレクトリーを作成しておきたいので、このような
指定を行っています。(これはあくまで、Antでできる作業の例として用意した
ものであり、WSDLファイルの作成のために必要というわけではありません。)
ただし、指定されたディレクトリーが既に存在している場合は、ディレクトリー
の作成は行われません。

また、axis-java2wsdlタスクの中で、

        <classpath>
          <pathelement path="${classes.dir}"/>
        </classpath>

という指定がありますが、これは、axis-java2wsdlタスクのclassname属性に指定
したクラス(およびそれが参照しているクラス)をclasses.dirプロパティーに
指定した場所から探してくるようにするために、CLASSPATHに指定するものです。
あとで、build.propertiesファイルに指定するようにclasses.dirプロパティー
にはEclipseのワークスペース内のフォルダーを指定しています。

それから、axis-wsdl2javaタスクにimplementationClassName属性が指定されていない
ことに注意してください。この場合に、実装するクラスの名前がどうなるのかについて
は後で説明します。


(4) パッケージ・エクスプローラーの中のJStudySOAP(プロジェクト)を右クリッ
クし、「新規」→「ファイル」を選択します。

(5) 「新規ファイル」ウインドウにおいて「ファイル名」に
build.properties
と入力し、「終了」ボタンをクリックします。

(6) build.propertiesファイルが開く(そのままだと、ビルド・プロパティー・エディターが開くので、
その下部にある「build.properties」タブをクリックするか、または、いったんファイルを閉じてから
パッケージ・エクスプローラーの中のbuild.propertiesを右クリックし、「アプリケーションから開く」
→「テキスト・エディター」を選択する。)ので、下記のような内容を入力します。
--------------------------------------------------------
work.dir=C:/ant_work2
classes.dir=C:/JavaWorks/JStudySOAP/bin
sources.dir=C:/JavaWorks/JStudySOAP/src
axis.dir=C:/Tomcat6.0/webapps/axis/WEB-INF
local.wsdl=${work.dir}/Hotel.wsdl
axisservlet=axis/services/AdminService
wsdd.dir=${work.dir}/jp/co/flsi/lecture/webservice/hotel
wsdd.deployfile=${wsdd.dir}/deploy.wsdd
wsdd.undeployfile=${wsdd.dir}/undeploy.wsdd
--------------------------------------------------------

ここで、最初の行の

work.dir=C:/ant_work2

は作業用のフォルダー(ディレクトリー)として

C:\ant_work2

を使用するために用意しています。これが、先ほどのmkdirタスクで作成される
ディレクトリーです。

また、3行目の

sources.dir=C:/JavaWorks/JStudySOAP/src

は、WSDLからJavaのソース・ファイルを自動生成させるためにEclipseのワークスペース
の中のJStudySOAP(プロジェクト)の中のソース・ファイル用のフォルダーを
指定しているものです。(先ほどのbuild.xmlファイルの中と照合すること。)



以上のファイルの入力が終わったら、保管(Ctrl + S)しておきましょう。


続いて、下記のようにしてAntを実行します。

(1) パッケージ・エクスプローラー内で、先ほど作成したbuild.xmlを右クリックし、
「実行」→「2 Ant実行」を選択します(「3 Ant実行...」を選択した場合は、別の
ウインドウが開いて、実行するターゲットの選択なども行えますが、デフォルトの
ターゲットの実行をするなら「2 Ant実行」で済みます)。

(2) Antが実行され、コンソールにメッセージが表示されます。最終的に

BUILD SUCCESSFUL
Total time: 6 seconds

のようなメッセージが表示されればOKです。
(ただし、Total timeの数字は環境によって異なります。)

(3) ワークスペース内のJStudySOAPプロジェクト内にJavaのソース・ファイルやWSDD
ファイルが生成されているはずなのですが、これをパッケージ・エクスプローラー内
に表示させるためには、パッケージ・エクスプローラー内のJStudySOAPを右クリック
し「更新」を選択します。

(4) 生成されたファイルが表示されますが、いくつかのソース・ファイルがエラー
(赤い×マークが付いている)になっているはずです。これはクラスパスにAxisの
JARファイルが指定されていないからで、JStudySOAPを右クリックし、「ビルド・パス」
→「ライブラリーの追加」を選択し、「ライブラリーの追加」ウインドウにおいて
「ユーザー・ライブラリー」が選ばれている状態で「次へ」ボタンをクリックし、
「axis」(以前用意しておいたもの)を選択(チェックマークを入れる)して「終了」
ボタンをクリックすると、エラーが無くなります。



(次回に続く)


では、今日はここまでにします。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
★ホームページ:
      http://www.flsi.co.jp/Java_text/
★このメールマガジンは
     「まぐまぐ(http://www.mag2.com)」
 を利用して発行しています。
★バックナンバーは
      http://www.flsi.co.jp/Java_text/
 にあります。
★このメールマガジンの登録/解除は下記Webページでできます。
      http://www.mag2.com/m/0000193915.html
★このメールマガジンへの質問は下記Webページにて受け付けて
 います。わからない所がありましたら、どしどしと質問をお寄
 せください。
      http://www.flsi.co.jp/Java_text/
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Copyright (C) 2009 Future Lifestyle Inc. 不許無断複製