corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

NetBeans IDE 上での Apache Axis2 Web サービスの作成

このチュートリアルでは、Java クラスから Apache Axis2 Web サービスを作成し、配備する方法を説明します。NetBeans IDE 付属の Tomcat サーバーと GlassFish サーバーをセットアップして、Axis2 Web サービスを配備する方法についても学びます。このチュートリアルでは、IDE が Axis2 Web サービスを正しく配備できるように IDE の Axis2 オプションを設定する方法についても説明します。

Apache Axis は、W3C へ提案された SOAP (Simple Object-Access Protocol) に関する実装です。Apache Axis2 は、より効率性とモジュール性を高め、XML 指向を強化した Axis のバージョンです。Axis2 は SOAP 1.1 と SOAP 1.2 をサポートするだけでなく、RESTful Web サービスに対しても統合サポートを提供します。同じビジネスロジックの実装により、WS-* スタイルのインタフェースと REST/POX スタイルのインタフェースが両方とも同時に提供されます。Axis2 の詳細については、Apache.org の Web サイトを参照してください。

Axis2 Web サービスは、Metro と相互利用できます。Axis2 Web サービス用の JAX-WS クライアントを作成できます。ただし、いくつかの複雑な Axis2 WSDL オペレーションについては、サポートされていないものもあります。

目次

このページの内容は NetBeans IDE 6.1 が対象です

このチュートリアルに従うには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE version 6.1
Java Development Kit (JDK) version 6 または
version 5
Apache Axis 2 version 1.3 以上
Apache Ant がインストールされ、
パスに追加されていること
最新バージョン
Java EE 互換の Web サーバーまたはアプリケーションサーバー Tomcat Web サーバー 6.0 および/または
GlassFish アプリケーションサーバー v2

Tomcat および GlassFish は、どちらも NetBeans IDE の Web および Java EE の配布とともにインストールできます。または、GlassFish のダウンロードページまたは Apache Tomcat のダウンロードページからダウンロードすることもできます。

このチュートリアルでは、Axis2 Support プラグインも必要です。IDE で「ツール」メニューの下にある「プラグイン」マネージャーを開き、「インストール済み」タブで「Axis2 Support」プラグインがインストールされているかを確認します。インストールされていない場合、「使用可能なプラグイン」タブから次のようにインストールします。

Axis2 Support プラグインが表示されたプラグインマネージャーのスクリーンショット

Apache Axis2 および Apache Ant のインストール

Apache Axis2 および Apache Ant は、どちらもアーカイブファイルとしてダウンロードされます。Axis2 はここにダウンロードでき、Ant はここにダウンロードできます。これらのプログラムをインストールするには、ダウンロードされたアーカイブを任意の場所に展開します。今後、インストールディレクトリはそれぞれ、AXIS2_HOME および ANT_HOME とします。Ant のインストール後、ANT_HOME/bin ディレクトリへのパスをクラスパスに追加します。

Axis2 WAR ファイルの作成およびコピー

Axis2 Web サービスをアプリケーションサーバーに配備するため、サーバーには axis2.war (Web ARchive) ファイルのコピーが必要です。Axis2 インストールディレクトリの Apache Ant を実行することで、axis2.war ファイルを作成できます。axis2.war の作成後、Tomcat ベースと GlassFish にコピーします。

Axis2 WAR ファイルを作成し、コピーするには、次の手順に従います。

  1. AXIS2_HOME/webapp に移動します。このディレクトリでコマンドプロンプトを開き、ant コマンドを実行します。Ant により、AXIS2_HOME/webapp/build.xml ファイルに基づいて AXIS2_HOME/dist/axis2.war が作成されます。クラスパスに ANT_HOME/bin が指定されている必要があります。
  2. AXIS2_HOME/dist/axis2.war を Tomcat CATALINA_BASE/webapps ディレクトリにコピーします。CATALINA_BASE の場所がわからない場合、IDE を起動して「サービス」タブを開きます。「サーバー」ノードを展開します。「Tomcat 6.0」ノードを右クリックし、コンテキストメニューから「プロパティー」を選択します。「Catalina のベース」の場所が「接続」タブに表示されます。
    Catalina のベースの場所を示す、Tomcat の「プロパティー」画面
  3. AXIS2_HOME/dist/axis2.warGLASSFISH_HOME/domains/DOMAIN_NAME/autodeploy にコピーします。GLASSFISH_HOME およびドメインの名前を検索するには、IDE を起動して「サービス」タブを開きます。「サーバー」ノードを展開します。「GlassFish V2」ノードを右クリックし、コンテキストメニューから「プロパティー」を選択します。ドメインフォルダの場所とドメイン名が「接続」タブに表示されます。たとえば、次の画像からは、axis2.warC:\Program Files\glassfish-v2ur1\domains\domain1\autodeploy にコピーすることがわかります。
    GlassFish ドメインディレクトリへのパスとドメイン名を示す GlassFish のプロパティーのページ

Tomcat 用の Axis2 オプションのセットアップ

Axis のサービスは、GlassFish 上よりも Tomcat 上のほうが高速で実行されますが、セットアップが若干複雑です。Tomcat と GlassFish の両方に同じサービスを簡単に配備できます。これは、最初に一方のサーバーに配備し、次に Axis2 オプションを変更してからもう一方のサーバーに配備することにより実現できます。

Tomcat ではなく GlassFish に配備する場合は、「GlassFish 用の Axis2 オプションのセットアップ」を参照してください。

Tomcat 用の Axis2 オプションをセットアップするには、次の手順に従います。

  1. IDE を起動します。メニューバーから「ツール」>「オプション」を選択します。「オプション」ダイアログが開きます。
  2. 「Axis2」アイコンをクリックします。Axis2 の配備オプションのページが開きます。
    Tomcat 用の Axis2 オプションのページのセットアップ
  3. Axis2 AAR ファイルのターゲットの場所を CATALINA_BASE (TOMCAT_HOME ではない) webapps/axis ディレクトリに設定します。CATALINA_BASE の場所は、「Axis2 WAR ファイルの作成およびコピー」で説明される、Tomcat サーバーのプロパティーにあります。

  4. Axis2 URL フィールドに、Tomcat サーバーの正しいポート番号が指定されていることを確認してください。ポート番号を確認するには、(「サービス」タブまたは「ツール」>「サーバー」から) Tomcat を起動し、Coyote HTTP/1.1 が使用するポートを確認します。
    Coyote HTTP ポート番号を示す Tomcat の出力
  5. 便宜上、「Use Tomcat Manager for Deployment」を選択します。この機能を使用すると、axis2.war に変更を加えるたびに、IDE が Tomcat Manager をバックグラウンドで起動して、reload コマンドを axis2.war で実行します。「Use Tomcat Manager for Deployment」を選択しない場合は、axis2.war に変更を加えるたびに、Tomcat Manager を手動で実行するか、ほかの Tomcat ツールを使用してこのファイルを再読み込みします。

    Tomcat Manager のデフォルトのユーザー名は「tomcat」で、デフォルトのパスワードも「tomcat」です。Tomcat Manager が配備され、デフォルトのマネージャーロールのユーザー名とパスワードがあることを再確認するには、CATALINA_BASE/conf/tomcat-users.xml を開きます。次のバージョンのファイルに示すように、マネージャーロールを定義し、これに対してユーザー名とパスワードを割り当てておく必要があります。このファイルは、必要に応じてコピー&ペーストできます。

    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager"/>
      <role rolename="admin"/>
      <user username="tomcat" password="tomcat" roles="manager,admin"/>
      <user username="ide" password="YENnS8UT" roles="manager,admin"/>
    </tomcat-users>
                

GlassFish 用の Axis2 オプションのセットアップ

Tomcat のほうが大幅に高速ではありますが、GlassFish アプリケーションサーバーに Axis2 Web サービスを配備することもできます。Tomcat と GlassFish の両方に同じサービスを簡単に配備できます。これは、最初に一方のサーバーに配備し、次に Axis2 オプションを変更してからもう一方のサーバーに配備することにより実現できます。

GlassFish ではなく Tomcat に配備する場合は、「Tomcat 用の Axis2 オプションのセットアップ」を参照してください。

Glassfish 用の Axis2 オプションをセットアップするには、次の手順に従います。

  1. IDE を起動します。メニューバーから「ツール」>「オプション」を選択します。「オプション」ダイアログが開きます。
  2. 「Axis2」アイコンをクリックします。Axis2 の配備オプションのページが開きます。
    GlassFish 用の Axis2 オプションのページのセットアップ
  3. Axis2 AAR ファイルのターゲットの場所を GLASSFISH_HOME/domains/DOMAIN_NAME/autodeploy ディレクトリに設定します。GLASSFISH_HOME の場所とドメインの名前は、「Axis2 WAR ファイルの作成およびコピー」で説明される、GlassFish サーバーのプロパティーにあります。

    注: axis2.warautodeploy ディレクトリに配置することにより、axis2.war を変更するたびに GlassFish はこのファイルを自動的に再配備します。

  4. Axis2 URL フィールドに、GlassFish サーバーの正しいポート番号が指定されていることを確認してください。ポート番号を確認するには、「サービス」タブまたは「ツール」>「サーバー」から GlassFish を起動し、HTTP 1.1 が使用する 80xx ポートを確認します。次の画像では、正しいポート番号は 8081 です。
    HTTP ポート番号 8081 を示す GlassFish サーバーの出力

注: Windows Vista を使用している場合は、GlassFish を Program Files フォルダにインストールし、ユーザーアクセス制御を有効にすると、IDE から axis2.war ファイルへの変更を行えなくなります。GlassFish を別の場所にインストールするか、ユーザーアクセス制御を無効にします。

Axis2 Web サービスの作成

NetBeans IDE では、Java クラスから Axis2 Web サービスを作成できます。これは、Java アプリケーションまたは Java ライブラリプロジェクトからのみ実行できます。このチュートリアルでは、Java ライブラリプロジェクトを作成し (メインメソッドが必要ないため)、そのプロジェクトで Axis2 Web サービスを作成し (同時に Java クラスを作成)、Axis2 Web サービスをサーバーに配備します。

Axis2 Web サービスを作成し、配備するには、次の手順に従います。

  1. 「新規プロジェクト」アイコンをクリックするか、「ファイル」>「新規プロジェクト」をクリックします。「新規プロジェクト」ウィザードが開きます。「Java」カテゴリから「Java クラスライブラリ」プロジェクトを選択します。「次へ」をクリックします。
  2. プロジェクトに「AxisHello」という名前を付けます。希望するプロジェクトフォルダの名前と場所を使用していることを確認します。プロジェクトを共有するかどうかは任意です。「完了」をクリックすると、IDE がプロジェクトを作成します。
  3. プロジェクトノードを右クリックします。コンテキストメニューが開きます。コンテキストメニューで、「新規」>「その他」を選択します。「新規ファイル」ウィザードが開きます。「Web サービス」カテゴリで、「Axis2 Service from Java」を選択し、「次へ」をクリックします。
    「新規ファイル」ウィザードで「Axis2 Service from Java」の作成を選択
  4. 「新規ファイル」ウィザードの「Service Type Selection」ページが開きます。プロジェクトに Java クラスがないため、「Create an Empty Web Service」を選択します。すでに Java クラスをコーディングしている場合は、「Create a Web Service from an Existing Java Class」を選択します。Web サービスの WSDL を編集する場合、たとえば名前空間を追加したり変更したりする場合は、「Generate a WSDL from Java Source Code」を選択します。WSDL の編集はこのチュートリアルの範囲外であるため、これは選択しないでください。ウィザードは、次の画像のように表示されるはずです。
    空の Web サービスを作成するための「Service Type Selection」ページのセットアップ
  5. 「次へ」をクリックします。「名前と場所」ページが開きます。Java クラスに「HelloAxisWorld」という名前を付けます。パッケージに「axishello」という名前を付けます。「Generate Sample Method」は選択したままにします。これにより、Java クラスに「Hello, World.」を返すメソッドが生成されます。
  6. 「完了」をクリックします。IDE により、axishello ソースパッケージに HelloAxisWorld.java クラスが生成され、この Java クラスをミラーリングする HelloAxisWorld Axis2 Web サービスが生成されます。「ナビゲータ」タブと「Axis2 Web Services」ノードでそれぞれ示されているように、Java クラスと Axis2 Web サービスの両方に hello:String オペレーションがあることがわかります。
    同一の Axis2 Web サービスと Java クラスオペレーションを示す「ナビゲータ」タブと「プロジェクト」タブ

Axis2 Web サービスの配備およびテスト

Axis2 Web サービスを作成したら、それをサーバーに配備する必要があります。実際には、サーバーへの配備は 2 つの手順で構成されます。

  1. Axis2 Web サービスを、サーバーで使用される axis2.war ファイルにコピーする。この手順は、サーバーがオフラインの状態で実行できます。
  2. 更新された axis2.war ファイルをサーバーに再配備する。

「Use Tomcat Manager for Deployment」オプションを有効にした状態で Tomcat に配備しているか (「Tomcat 用の Axis2 オプションのセットアップ」を参照)、または GlassFish に配備していて axis2.warGLASSFISH_DOMAIN/autodeploy フォルダにある場合 (「GlassFish 用の Axis2 オプションのセットアップ」を参照)、更新された axis2.war は自動的にサーバーに再配備されます。そうでない場合、アプリケーションサーバーツールを使用して axis2.war を手動で再配備する必要があります。このチュートリアルでは、自動的に再配備されるように Axis2 オプションをセットアップしていることを想定します。

Axis2 Web サービスをサーバーに配備するには、次の手順に従います。

  1. Web サービスのノードを右クリックします。コンテキストメニューが開きます。「Deploy to Server」を選択します。IDE が Axis2 AAR ファイルをコンパイルし、アプリケーションサーバーで使用される axis2.war ファイルにコピーします。
  2. 自動配備を有効にしている場合は、Web サービスがサーバーに配備されます。サーバーが実行されていない場合は、サーバーを起動すると Web サービスが自動的に配備されます。
  3. サービスをテストするには、Web サービスノードを展開してオペレーションを表示します。「hello:String」ノードを右クリックし、「Test Operation in Browser」を選択します。
    「Test Operation in Browser」のオプションを示す、オペレーションサブノードのコンテキストメニュー
  4. ブラウザが開き、独自の変数のテスト値が表示されます。テスト値は URL に付加されます。
    オペレーションのテスト結果と URL に付加されたテスト値を示すブラウザウィンドウ
  5. URL 内の変数値を変更し、Enter キーを押します。テスト結果も変わります。
    オペレーションのテスト結果と変更された値を示すブラウザウィンドウ

Web サービスのオペレーションの変更

Web サービスのオペレーションを変更するには、プロジェクト内の Java ファイルを編集します。Web サービス内のオペレーションも同時に変わります。単純な add メソッドを次のように HelloAxisWorld.java に追加します。

public class HelloAxisWorld {

    /** Sample method
    */
    public String hello(String name) {
        return "Hello "+name;
    }
    public int add(int x, int y) {
            return x+y;
    }
        }

Java ファイルを保存すると、オペレーションが Web サービスのサブノードとして表示されます。
Web サービスへの新しいオペレーションのサブノードを示す「プロジェクト」タブ

Web サービスを再配備し、それを「Axis2 Web サービスの配備およびテスト」で説明されているようにテストします。

その他の課題

有益なアイデアをいくつか紹介します。

  • Axis2 Web サービス用の JAX-WS クライアントを作成します。Web サービスの WSDL URL が必要です。WSDL URL を得るには、Web サービスノードを右クリックし、「プロパティー」を選択します。WSDL ファイルの URL が「プロパティー」ページにあります。JAX-WS Web サービスの詳細については、「JAX-WS Web サービスについて」および「JAX-WS Web サービスクライアントの開発」を参照してください。
  • Web サービスをほかのアプリケーションサーバーにも配備してみます。Axis2 オプションを変更する必要があります。「Tomcat 用の Axis2 オプションのセットアップ」または「GlassFish 用の Axis2 オプションのセットアップ」を参照してください。
  • 既存の Java クラスを Axis2 Web サービスとして公開します。Java クラスは、Java アプリケーションまたは Java クラスライブラリプロジェクトに置く必要があります。


関連項目

NetBeans IDE を使用した Web サービスの作成および使用の詳細については、次のリソースを参照してください。

メーリングリストに登録することによって、NetBeans IDE Java EE 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。

Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems