■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 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. 不許無断複製 |