ウェブサービスを書いてみる - プロジェクト作成
2006/02/19
Categories: webservice
ここの手順では、動的Webプロジェクトを作成して、ここからウェブサービスを作っているが、本来はウェブサービスプロジェクトを作成することで同じことができるはず。。。「はず」というのは、WTPからウェブサービス生成しようとしたのだが例外が出てしまって先に進まなかったので、別のやり方を探したから。
サーブレットが動くところまで
- Eclipseを起動し、[ファイル]-[新規]-[その他]を選ぶ。
- ウィザードの選択から「/Web/動的Webプロジェクト」を選択
- プロジェクト名を適宜つける
- Target Runtimeに「Apache Tomcat v5.5」を選択。(設定しおいたサーバ一覧から選べる)
- Contextに名前を適宜つける。デフォルトはプロジェクト名と同じ。
- サーバービューにTomcatインスタンスの状態が表示されているはず。ここに今回作成したプロジェクトを割り付ける。
- Tomcatインスタンスを選択して、コンテキストメニューから「プロジェクトの追加および除去」を選ぶ。
- 「使用可能プロジェクト」に、前項で作成した「動的Webプロジェクト」があるはずなので、これを選択し、「追加」ボタンを押す。
- 選択したプロジェクトが「構成プロジェクト」に追加される。
- 「終了」を押して確定する。
- プロジェクトディレクトリ/WebContent/にAxisの必要ファイルをコピーする。lib配下だけコピーしてもいいのだけど、happyaxis.jspによる環境チェックもろもろも利用したいのでサンプルからコピーしている。
- Axis導入ディレクトリ/webapp/axis/の配下をコピーする。
- WebContent配下の次のファイルを「消す」。元々がサンプルとして提供されているものなので自前のウェブサービスでは使用しない。
- WebContent/WEB-INF/classes/samples/配下全部
- WebContent/WEB-INF/StockQuoteService.jws
- ファイルシステム上でプロジェクトディレクトリ配下に何か置いてもEclipseのプロジェクトの一部として認識されない。プロジェクトエクスプローラ上で「更新」を行うことを忘れないようにする。WTP管理下のTomcatに対しては、プロジェクトの一部として認識されているファイルだけがデプロイされるから。
- Tomcatを起動し、必要な環境が準備できたか確認する。
- サーバービューでサーバを選択し、「始動」を選択する
- サーバが起動したら、ブラウザで「http://localhost:8080/コンテキスト名/」にアクセスする。AxisのWelcomeページが表示されるはず。
- Welcomeページから「検証」をクリックして、必要なコンポーネントが揃っているか(ロードされているか)確認する。
- WTPから起動したTomcatが認識しているモノ(デプロイされた資産など)を見たい場合は、「Eclipseのワークスペース/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/配下を参照する。意図通りのファイルが配備されているか確認できる。(tmp0は変化する、のだろう)
コンテキスト固有の設定
- axisの配布物の中からweb.xmlを持ってきたのでdisplay-nameがデフォルトのままである。せっかくなので自分のwebアプリであることがわかるように編集する。
- WebContent/WEB-INF/web.xmlを編集
- /web-app/display-nameに表示名を入れる。
- 今回作成するウェブサービスはsenを用いて形態素解析を行う。したがって、senのライブラリがロードされるようにしなければならない。これはコンテキスト固有の問題と思われるのでWebContent配下に配置した。
- sen導入ディレクトリ/lib/sen.jar → WebContent/WEB-INF/lib/へコピー
-
senを使用するにはシステムプロパティsen.homeにsen導入ディレクトリを指定しなければならない。Tomcat導入ディレクトリ/conf/catalina.propertiesに記述することができるのだが、WTP管理下のTomcatの場合はここに書いても反映されない。
パッケージエクスプローラーで見たとき「サーバー」というノードに上記で定義したWTP管理下のTomcatインスタンスの設定が見えるはず。ここにcatalina.propertiesを追加する。そして中身をTomcat導入ディレクトリ配下のcatalina.propertiesからコピーしてくる。その上で「sen.home=sen導入ディレクトリ」を追記する。
sen.homeだけを記述するとTomcatが起動しなくなるので注意。
- 上記のようにデプロイされる内容に変化があった場合、WTP管理下のTomcatであればその場で再デプロイされるので便利。ただし、「プロジェクトの一部」として認識されていないといけないので、ファイルやディレクトリをコピーした後は「更新」を忘れないこと。
>> Home