検索

27.3. サービスプロバイダーの実装

download PDF

実装コードの生成

コードジェネレーターの -impl フラグを使用して、サービスプロバイダーをビルドするために使用される実装クラスを生成します。

注記

サービスのコントラクトに XML スキーマで定義されたカスタムタイプが含まれている場合は、タイプのクラスが生成され、使用可能であることを確認する必要があります。

コードジェネレーターの使用の詳細については、「cxf-codegen-plugin」 を参照してください。

生成されたコード

実装コードは 2 つのファイルで設定されています。

  • portTypeName.java: サービスのサービスインターフェイス (SEI)
  • portTypeNameImpl.java: サービスによって定義された操作を実装するために使用するクラス。

操作のロジックを実装する

サービスの操作のビジネスロジックを提供するには、portTypeNameImpl.java のスタブメソッドを完了します。通常、標準の Java を使用してビジネスロジックを実装します。サービスでカスタム XML スキーマタイプを使用する場合は、タイプごとに生成されたクラスを使用してそれらを操作する必要があります。いくつかの高度な機能にアクセスするために使用できる Apache CXF 固有の API もいくつかあります。

たとえば、で定義されたサービスの実装クラス 例26.1「HelloWorld WSDL コントラクト」 は、例27.2「グリーターサービスの実装」 のように見えるかもしれません。太字で強調表示されているコード部分のみをプログラマーが挿入する必要があります。

例27.2 グリーターサービスの実装

package demo.hw.server;

import org.apache.hello_world_soap_http.Greeter;

@javax.jws.WebService(portName = "SoapPort", serviceName = "SOAPService",
                      targetNamespace = "http://apache.org/hello_world_soap_http",
                      endpointInterface = "org.apache.hello_world_soap_http.Greeter")

public class GreeterImpl implements Greeter {

    public String greetMe(String me) {
       System.out.println("Executing operation greetMe"); System.out.println("Message received: " + me + "\n"); return "Hello " + me;
    }

    public void greetMeOneWay(String me) {
       System.out.println("Executing operation greetMeOneWay\n"); System.out.println("Hello there " + me);
    }

    public String sayHi() {
       System.out.println("Executing operation sayHi\n"); return "Bonjour";
    }

    public void pingMe() throws PingMeFault {
       FaultDetail faultDetail = new FaultDetail(); faultDetail.setMajor((short)2); faultDetail.setMinor((short)1); System.out.println("Executing operation pingMe, throwing PingMeFault exception\n"); throw new PingMeFault("PingMeFault raised by server", faultDetail);
    }
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.