Web サービスを開発するための開始点

このトピックでは、Web サービス開発における 3 つの異なる開始点について説明します。

WSDL から開始する

この Web サービス開発手法では、WSDL ファイルの定義 (または既存の WSDL ファイルの取得) から開始します。WSDL は、Web サービスがクライアントと通信する方法を定義する Web サービス規約です。この規約には、送信されるデータ型、利用できるメソッド、使用されるプロトコルやメッセージ フォーマットなどが定義されます。そのため、この Web サービスの開発手法は、「Contract First」または「トップ ダウン」開発と呼ばれることがあります。ただし、この開発手法で使用できる型は JAX-RPC 型のみで、XMLBean 型は使用できません。

WSDL から Web サービスを生成するには、次の手順に従います。

  1. WSDL を Web サービス プロジェクトにインポートします。
  2. [プロジェクト・エクスプローラー] ビューまたは [ナビゲーター] ビューで、WSDL を右クリックして [Web サービス|Web サービスを生成] を選択します。

2 つのアーティファクト (Web サービス実装クラスと JAR ファイル) が作成されます。Web サービス クラスには、WSDL によって記述された Web メソッド (パブリックにアクセス可能なメソッドおよびコールバック) が含まれていますが、メソッド本体は含まれていません。開発者は Web サービスの実装の詳細を記述する必要があります。JAR ファイルには、Web サービス インタフェース クラスと元の WSDL で参照される型が含まれており、JAR ファイルはプロジェクトの WEB-INF/lib ディレクトリに配置されています。

たとえば、生成された Web サービス実装クラスは次のようになります。

@WebService(
  serviceName="MailingListServiceService",
  targetNamespace="http://services",
  endpointInterface="model.MailingListService")
@WLHttpTransport(contextPath="ServicesWeb",serviceUri="MailingListService",portName="MailingListServiceSoapPort")
public class MailingListServiceImpl implements MailingListService {
 
  public MailingListServiceImpl() {
  
  }

  public java.lang.String getCustomers() {
    // 実装と置き換える
     return null;     
  }

このクラスは、生成された JAR ファイルに含まれるインタフェース ファイル MailingListService を実装します。

開発者は、メソッド getCustomers() のメソッド本体を記述する必要があります。

XML スキーマから開始する

この Web サービス開発手法では、XML スキーマ (XSD ファイル) から開始します。XML スキーマは、Web サービスのオペレーションでパラメータや戻り値の型として使用される XML データ構造を定義したものです。次に、スキーマから Web サービスで使用される XMLBean Java 型が自動的に生成されます。この手法は、1 つ以上のプロジェクトのすべての Web サービスに対するデータ構造の共通セットであるという点で、次の利点があります。

XMLBean 型が使用できると、後述の「Java クラスから開始」の方法に従って Web サービスを開発できます。

XML スキーマから開始して開発するには、以下の手順に従います。

  1. Web サービス プロジェクトに対して XMLBeans ビルダ ファセットを有効にします
  2. スキーマをプロジェクトの schema ディレクトリにインポートします。 (schema ディレクトリは、ビルダ ファセットがプロジェクトに追加されたときに自動的に作成されます)。

スキーマは、XMLBeans に自動的にコンパイルされ、Web サービスで使用できるようになります。XMLBean 型は、schema ディレクトリのスキーマが更新されるたびに自動的に再コンパイルされます。

注意 : XMLBeans ビルダ ファセットを使用して XMLBean 型を作成する必要はありません。代わりに、JAR を生成するために、プロジェクト内の XSD または WSDL を右クリックして [Web サービス|タイプ JAR ファイルの生成] を選択します。これにより、[タイプ JAR ファイル生成ウィザード] が開き、XMLBeans を含む JAR を生成することができます。また、XMLBean 型を含む JAR がすでに存在する場合は、それをプロジェクトにインポートし、それらの型を Web サービスで使用できます。どちらの場合も、元のスキーマが変更されたときには XMLBean JAR が自動的に更新されません。

使用可能な XMLBean 型は、.xbean_src ディレクトリの [ナビゲーター] ビュー ([ウィンドウ|ビューの表示|ナビゲーター]) で表示できます。.xbean_src ディレクトリおよび .xbean_bin ディレクトリには、直接編集してはいけない生成されたファイルが含まれています。

次の例は、XMLBean 型を Web サービスに組み込む 1 つの方法を示しています。次のスキーマをインポートするとします。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ws="http://openuri.org/bea/samples/workshop" targetNamespace="http://openuri.org/bea/samples/workshop" elementFormDefault="qualified">
    <xs:element name="applicant">
        <xs:complexType mixed="true">
            <xs:choice minOccurs="0" maxOccurs="1">
                <xs:element name="bankrupt" type="xs:boolean"/>
                <xs:element name="name_first" type="xs:string"/>
                <xs:element name="name_last" type="xs:string"/>
                <xs:element name="risk_estimate" type="xs:string"/>
                <xs:element name="score_info" type="ws:score_infoType"/>
</xs:choice>         </xs:complexType>     </xs:element>     <xs:complexType name="score_infoType" mixed="true">         <xs:choice minOccurs="0" maxOccurs="1">             <xs:element name="credit_score" type="xs:short"/>         </xs:choice>     </xs:complexType> </xs:schema>

対応する生成された XMLBean 型は、ApplicantDocument、ScoreInfoType などです。

次の Web サービスのメソッドは、入力パラメータとして ApplicantDocument を使用し、簡単なリスク評価計算を実行します。

    @WebMethod
    public String getRiskEstimate(ApplicantDocument appDoc) {
        
        boolean bankrupt = appDoc.getApplicant().getBankrupt();
        short balanceRemain = appDoc.getApplicant().getBalanceRemaining();
        
        if (bankrupt == true && balanceRemain < 200)
            appDoc.getApplicant().setRiskEstimate("high");
        else
            appDoc.getApplicant().setRiskEstimate("low");
        
        return appDoc.getApplicant().getRiskEstimate();
}

オペレーションまたはコールバックでは、doc/lit/bare バインディングで XBeans をパラメータまたは戻り値の型として使用することはできません。これらを使用すると、デプロイ時にエラーが発生します。XBeans をパラメータまたは戻り値の型として使用するサービスには、doc/lit/wrapped を使用してください。

XMLBeans の使用に関する詳細については、「IDE での XMLBeans の使用」および「チュートリアル : XMLBeans 」を参照してください。

Java クラスから開始する

この手法では、Web サービスを Java クラスとして開発します。メソッドは Web サービスのオペレーションになり、メソッドのパラメータと戻り値の型は単純な JavaBean になります。Java クラスには、エクスポーズされるメソッドを示したり、サービスの他のプロパティを設定したりするためのアノテーションが付けられます。次の手順に従えば、Workshop のすべての Web サービス機能を簡単に利用できます。

  1. Web サービス プロジェクトの中の適切なパッケージに、新しい Web サービス クラスを作成します ([ファイル|新規|Web サービス])。Workshop プロジェクトの詳細については、「アプリケーションとプロジェクト」を参照してください。
  2. 以下の手順はすべて、「タイマー コントロールの作成」に示す手順で、Web サービスを作成するためのグラフィカルな編集環境を使用して実行できます。詳細については、「デザイン ビューを使用した Web サービスの作成」を参照してください。
  3. Web サービスでエクスポーズするメソッドを追加し、各メソッドのパラメータをコンフィグレーションする。
  4. Web サービスでエクスポーズするコールバックを追加し、各コールバックのパラメータをコンフィグレーションする。コールバックの詳細については、「Web サービス コールバック」を参照してください。
  5. Web サービスが使用するコントロールからの、関連するイベントに対応するイベント ハンドラを実装する。イベント ハンドラの詳細については、「コントロール イベントの処理」および「Web サービスのコールバック メッセージの処理」を参照してください。
  6. 各メソッドおよびコールバックの会話フェーズを決定し、コンフィグレーションする。会話の詳細については、「会話形式の Web サービスの設計」を参照してください。
  7. バッファリングするメソッドを決定してコンフィグレーションする。メッセージ バッファについて学習するには、WebLogic Server ドキュメントの「バッファ付き Web サービスの作成」を参照してください。
  8. Web サービスが完成したら、[プロジェクト・エクスプローラー] で Web サービスを右クリックして [Web サービス|WSDL を生成] を選択すると、WSDL ファイルを生成できます。

関連トピック

WSDL ファイル : Web サービスの記述

 


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。