SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

POJOベースのドメインアプリケーションをWebサービスとして公開する

Apache Axis2とSpringを組み合わせたREST/SOAPベースのWebサービス

ダウンロード サンプルソース (5.0 MB)

WSDLの生成

 既存クラスからWSDLを生成するには、Axis2ディストリビューションに用意されているwsdl2javaなどのコマンドライン実行可能バイナリを使用する方法があります。個々のバイナリをスタンドアロンバイナリおよびANTタスクとして使用する方法は、Axis2の付属ドキュメントに詳しく解説されています。Axis2プロジェクトからは、EclipseIntelliJ IDEAMaven 2用のプラグインも提供されています。

 今回のサンプルではEclipseプラグインを使用します。このプラグインは、機能的にはコマンドライン形式のバイナリより劣りますが、Webサービスの生成プロセスを大幅に効率化できるという長所があります。またこのプラグインを用いると、WSDL-to-JavaおよびJava-to-WSDLの両方向の生成をサポートできます。

 柔軟性と分かりやすさのために、生成されたWSDLなどのWebサービス関連のコードを他のプロジェクト内に配置するとよいでしょう。そこで、コンポーネントを生成する前に、IDE内で空のソースとバイナリツリーを含む空のJavaプロジェクトを作成してください。このプロジェクトの名前はAccountWSにします。

 これでEclipseプラグインが使用可能になり、AccountManagerImplクラスを参照してJavaクラスからWSDLを生成できるようになります。変数名の整合性を保つ関係上、必ずインターフェイスではなく実装クラスを参照してください。詳細については、以下、図2の一連のスクリーンショットを参照してください。

図2 EclipseプラグインでJavaクラスからWSDLを生成
図2 EclipseプラグインでJavaクラスからWSDLを生成

 これで、新規の空プロジェクトAccountWS内に「services.wsdl」という名前のファイルが作成されるはずです。このWSDLは、次のように入力/出力の値に応じた2つのサービスを定義しています。

<xs:element name="getAccount">
  <xs:complexType>
   <xs:sequence>
     <xs:element name="accountId" nillable="true" type="xs:string" />
   </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="getAccountResponse">
  <xs:complexType>
   <xs:sequence>
     <xs:element name="return" nillable="true" type="ns0:Account" />
   </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="setStatus">
  <xs:complexType>
    <xs:sequence>
    <xs:element name="accountId" nillable="true" type="xs:string" />
        <xs:element name="status" nillable="true" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

 WSDLが生成されたら、<soap:address>パラメータを手作業で編集し、このサービスで使用するポートおよびURLを指定する必要があります。プラグインによる作成時には、デフォルト値が適用されています。

次のページ
クライアントおよびサーバサイドコードの生成(スタブおよびスケルトン)

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Ramanujam A. Rao(Ramanujam A. Rao)

ソフトウェア設計者兼エンジニアで、エンタープライズアプリケーションの設計と配備を専門とする。現在は、エンタープライズアプリケーションアーキテクチャの分野におけるコンサルティングおよび、J2EEプラットフォームを用いたスケーラブルな分散型アプリケーションの構築に関するサポートを行っている。連絡先はarrao@acm.org

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1334 2007/05/28 08:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー