JAX-WS(一)の使用wsgen JavaからWebServiceを作成

7578 ワード

コンセプト
JAX-WS 2.0のフルネームJava API for XML-Based Web Service 2.0.JAX-WS 2.0はJAX-RPC 1.0仕様への拡張であり、JAX-RPC 1.1の後続バージョンであり、JAX-RPC 2.0規格が発表されて間もなくJAX-WS 2.0と名前が変更する.
JAX-WS 2.0はSunの新しいWebサービスプロトコルスタックであり、完全に標準に基づいて実現されている.bindingレイヤでは、the Java Architecture for XML Binding(JAXB)が使用され、parsingレイヤではthe Streaming API for XML(StAX)が使用され、schema仕様も完全にサポートされています.
用語
  • SEI:Service Endpoint Interface
  • JAX:Java API for XML Web Servcie
  • JAX-WS RI:JAX-WS Reference Implementation
  • SAAJ:SOAP with Attachments API for Java

  • Webサービスの作成
    JAX-WS 2.0には、Webサービスを作成する2つの開発プロセスがあります.トップダウンとカスタムアップです.トップダウン方式とは、WSDLファイルを介してWebサービスを作成することを指す.下から上へはJavaクラスからWebサービスを作成します.2つの開発プロセスで最終的に作成されたファイルは、次のとおりです.
  • SEI(WSDLのWeb Service portに対応し、Javaではインタフェースとして表現される).
  • SEI実装クラス;
  • WSDLとXSDファイル;

  • Javaからの開発手順:
  • は、クラスが@WebServiceであることを宣言し、SEI実装クラスとして宣言し、露出する必要があるメソッドに@WebMethodと表記する.
  • wsgenコマンドを実行して他の必要なファイルを生成します.
  • Webサービスをリリースします.

  • SEI実装クラス
    最も簡単なSEI実装クラス:
    
     
     
    1. package net.oseye;
    2.  
    3. import javax.jws.WebMethod;
    4. import javax.jws.WebService;
    5.  
    6. @WebService
    7. public class Hello {
    8. @WebMethod
    9. public String SayHello(String name){
    10. return String.format("Hello,%s",name);
    11. }
    12. }

    この場合のディレクトリ構造は次のとおりです.
    wsgenコマンドを使用して必要なファイルを生成
  • JAX-WS-Java-Serverプロジェクトディレクトリに入る:
    
       
       
    1. D:\MyTemp\workspace\JAX-WS-Java-Server>
  • wsgenコマンドを実行する:
    
       
       
    1. wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl net.oseye.Hello
  • 実行中に「directory not found:wsdl」が表示され、wsdlディレクトリが手動で作成される可能性があります.
  • が成功するとbin、srcディレクトリのネーミングスペースnet.oseyeに生成されたjaxwsフォルダとwsdlディレクトリのHelloService.wsdlとHelloService_が表示されます.schema1.xsd.

  • この場合のディレクトリ構造は次のとおりです.
     
    Webサービスの公開
    アプリケーションでのリリースでは、JDKの停止が非常に便利なAPI:Enndpoint.publish
    
     
     
    1. package net.oseye;
    2.  
    3. import javax.xml.ws.Endpoint;
    4.  
    5. public class Main {
    6.  
    7. /**
    8. * @param args
    9. */
    10. public static void main(String[] args) {
    11. Endpoint.publish("http://localhost:8808/HelloService", new Hello());
    12. }
    13.  
    14. }

    アプリケーションの実行、アドレスバーの入力:http://localhost:8808/HelloService、接客プレビュー:
    wsgenツールの概要
    wsgenはJDKのbinディレクトリの下にあるexeファイル(Windows版)で、このコマンドの主な機能は適切なJAX-WSを生成することです.Webサービスのターミナルクラスファイルを読み込み、Webサービスをパブリッシュするために依存するすべてのソースコードファイルとコンパイルされたバイナリクラスファイルを生成します.ここで特に説明するのは、通常、WebサービスBeanで使用される例外クラスが別の記述Beanを生成し、WebサービスBeanのメソッドが例外を放出することを宣言している場合は、サーバがペアをバインドできない必要があります.さらにwsgenは、WSDLおよび関連するxsdファイルの生成を支援することもできる.wsgenはリソースファイルから完全な操作リストを生成し、webサービスが合法かどうかを検証し、完全に公開することができます.
    コマンドパラメータの説明:
  • -cp定義classpath
  • -r beanのwsdlファイルの格納ディレクトリ
  • を生成する.
  • -sは、Webサービスを発行するソースファイルの格納ディレクトリ(メソッドに例外が投げ出された場合、その例外の記述クラスソースファイルが生成される)
  • を生成する.
  • -dは、Webサービスのコンパイルされたバイナリクラスファイルを発行する格納ディレクトリ(この異常な記述クラスのclassファイル)
  • を生成する.
     
     
     
     
    http://www.oseye.net/blog/89