WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

JavaBeans からの JAX-WS アプリケーション用 Java 成果物の作成

JAX-WS ツールを使用することにより、JavaBeans コンポーネントから開始する際に JAX-WS Web サービスを作成するために必要な、Java 成果物を生成できます。

始める前に

JavaBeans コンポーネントから開始する際に、 Java API for XML-Based Web Services (JAX-WS) Web サービス・アプリケーションを作成するには、初めに、明示的または暗黙のアノテーション付きサービス・エンドポイント・インターフェースを作成する必要があります。その後で、移植可能な Java 成果物を生成できます。

このタスクについて

ボトムアップ・アプローチを使用して JAX-WS Web サービスを作成する場合は、 サービス・エンドポイント実装から開始する際に wsgen コマンド行ツールを使用します。 wsgen ツールは、コンパイル済みサービス・エンドポイント実装クラスを入力として処理し、 以下の移植可能な成果物を生成します。

JavaBeans で開始するボトムアップ・アプローチを使用して JAX-WS Web サービスを作成する際に、 WSDL ファイルを作成する必要はありません。アノテーションの使用により、 サービス・エンドポイントまたはクライアントの構成に必要な WSDL 情報のすべてが提供されます。 Feature Pack for Web Services は WSDL 1.1 文書をサポートします。 この文書は、Web Services-Interoperability (WS-I) Basic Profile 1.1 仕様に準拠し、Document/Literal スタイル文書または RPC/Literal スタイル文書のいずれかです。 さらに、LITERAL という値の USE 属性を宣言する バインディング付き WSDL 文書は、サポートされますが、値 ENCODED ではサポートされません。 Document/Literal ラップ・パターンを実装する WSDL 文書の場合、 ルート・エレメントは XML スキーマ内に宣言され、メッセージ・フローのオペレーション・ラッパーとして使用されます。 要求と応答の両方に、別個のラッパー・エレメント定義が存在します。

プロシージャー

  1. サービス・エンドポイント実装クラス・ファイルを見つけます。
  2. wsgen -keep -verbose service_implementation_class コマンドを実行して、 移植可能な成果物を生成します。 wsgen コマンド行ツールは、 app_server_root¥bin¥ ディレクトリーにあります。-verbose オプションを指定しているため、 生成されたすべてのファイルのリストが、コマンドを実行したときに表示されます。

結果

JAX-WS Web サービスの作成に必要な Java 成果物が得られました。

以下の例は、移植可能な成果物を生成するために wsgen コマンドを使用してサービス・エンドポイント実装クラスを処理する方法を示しています。 この例の EchoService サービス実装クラスは、明示的な JavaBeans サービス・エンドポイントを使用します。
  1. サンプルの EchoServicePortTypeImpl サービス実装クラス・ファイル、および関連の EchoServicePortType サービス・インターフェース・クラス・ファイルをディレクトリーにコピーします。 ディレクトリーには、クラス・ファイルの com.ibm.was.wssample.echo パッケージ名に対応するディレクトリー・ツリー構造が含まれている必要があります。
    /* This is a sample EchoServicePortTypeImpl.java file.    */
    package com.ibm.was.wssample.echo;
    
    
    @javax.jws.WebService(serviceName = "EchoService", endpointInterface = 
    "com.ibm.was.wssample.echo.EchoServicePortType", 
    targetNamespace="http://com/ibm/was/wssample/echo/",
    portName="EchoServicePort")
    
    public class EchoServicePortTypeImpl implements EchoServicePortType {
    
    	public EchoServicePortTypeImpl() {
    	}
    
    	public String invoke(String obj) {
    		System.out.println(">> JAXB Provider Service: 
    Request received.\n");
    		String str = "Failed";
    		if (obj != null) {
    			try {
    				str = obj;
    } catch (Exception e) {
    e.printStackTrace();
    			}
    		}
    		return str;
    
    	}
    
    }	
    /* This is a sample EchoServicePortType.java file.    */
    package com.ibm.was.wssample.echo;
    
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;
    import javax.xml.ws.RequestWrapper;
    import javax.xml.ws.ResponseWrapper;
    
    
    @WebService(name = "EchoServicePortType", targetNamespace = 
    "http://com/ibm/was/wssample/echo/", 
     wsdlLocation="WEB-INF/wsdl/Echo.wsdl")
    
    public interface EchoServicePortType {
    
    
        /**
         * 
         * @param arg0
         * @return
         *     returns java.lang.String
         */
        @WebMethod
        @WebResult(name = "response", targetNamespace = 
        "http://com/ibm/was/wssample/echo/")
        @RequestWrapper(localName = "invoke", targetNamespace = 
        "http://com/ibm/was/wssample/echo/",
         className = "com.ibm.was.wssample.echo.Invoke")
        @ResponseWrapper(localName = "echoStringResponse", 
         targetNamespace="http://com/ibm/was/wssample/echo/",
         className = "com.ibm.was.wssample.echo.EchoStringResponse")
        public String invoke(
            @WebParam(name = "arg0", targetNamespace = 
            "http://com/ibm/was/wssample/echo/")
            String arg0);
    
    }
    
  2. app_server_root¥bin¥ ディレクトリーから wsgen コマンドを実行します。 -cp オプションは、サービス実装クラス・ファイルのロケーションを指定します。 -s オプションは、生成されたソース・ファイルのディレクトリーを指定します。 -d オプションは、生成された出力ファイルのディレクトリーを指定します。 -s または -d オプションを使用する場合は、 初めに、生成された出力ファイルのディレクトリーを作成する必要があります。
    [Windows]
    app_server_root¥bin¥wsgen.bat -wsdl -s c:¥generated_source¥ -cp c:¥my_application¥classes¥
    com.ibm.was.wssample.echo.EchoServicePortTypeImpl -verbose -d c:¥generated_artifacts¥
    [Linux] [AIX] [HP-UX] [Solaris] Linux および UNIX ベースのプラットフォームでは、親シェルにスクリプトを 提供 し、 . /app_server_root>/bin ディレクトリーから次のコマンドを実行することにより、エクスポートされた変数を継承します。
    . ./setupCmdLine.sh  (ピリオド間のスペースに注意してください。)
    wsgen コマンドを実行します。
    app_server_root/bin/wsgen.sh -wsdl -s c:/generated_source/ -cp c:/my_application/classes/ 
    com.ibm.was.wssample.echo.EchoServicePortTypeImpl -verbose -d c:/generated_artifacts/
wsgen コマンドを使用して Java 成果物を生成すると、以下のファイルが生成されます。
/generated_source/com/ibm/was/wssample/echo/EchoStringResponse.java
/generated_source/com/ibm/was/wssample/echo/Invoke.java
/generated_artifacts/EchoService.wsdl
/generated_artifacts/EchoService_schema1.xsd
/generated_artifacts/com/ibm/was/wssample/echo/EchoStringResponse.class
/generated_artifacts/com/ibm/was/wssample/echo/Invoke.class

EchoStringResponse.java ファイルと Invoke.java ファイルは、 生成された Java クラス・ファイルです。生成された Java ファイルのコンパイル済みバージョンは、 EchoStringResponse.class ファイルと Invoke.class ファイルです。 -wsdl オプションを指定したため、EchoService.wsdl ファイルと EchoService_schema1.xsd ファイルが生成されています。

次の作業

JavaBeans インプリメンテーションを完了します



サブトピック
JAX-WS アプリケーション用の wsgen コマンド
JAX-WS アプリケーションの Java 言語、WSDL、および XML 間のマッピング
関連概念
JAX-WS
WSDL
関連タスク
JavaBeans からの Web サービス・アプリケーションの開発
関連情報
Web サービス仕様と API
Java API for XML Web Services (JAX-WS) API documentation
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_devjaxwsartifactsbean.html