Webサービスは、アプリケーションをWebアプリケーションに変換できます。
Webサービスを使用することにより、アプリケーションは情報を世界に公開したり、機能を提供したりできます。
Webサービスは、他のアプリケーションで使用できます。
Webサービスを使用すると、会計部門のWIN 2KサーバーがITベンダーのUNIXサーバーに接続できます。
基本的なWebサービスプラットフォームはXML+HTTPです。
WebサービスはXMLを使用してデータをコーディングし、SOAPを使用してデータを転送します。
WebServiceとは何ですか
WebServiceは、名前が示すように、Webベースのサービスです。 Web(HTTP)メソッドを使用して、外部システムからの一部のリクエストを受信して応答します。これにより、リモートコールが可能になります。
1:WebServiceのワーキングモードの観点から見ると、通常のWebプログラム(ASP、JSPなど)と本質的に違いはありません。これらは、HTTP伝送プロトコルに基づくプログラムです。
2:WebServiceで使用されるデータは、XML形式に基づいています。現在、標準のWebサービスは主にSOAPプロトコルをデータ形式で使用しています。 SOAPプロトコルは、実際にはXMLエンコード仕様に基づくテキストプロトコルです。
Webサービスの技術サポート
Webサービスプラットフォームでは、分散アプリケーションの作成を可能にするために一連のプロトコルが必要です。どのプラットフォームにもデータ表現方法とタイプシステムがあります。相互運用性を実現するには、Webサービスプラットフォームは、さまざまなプラットフォーム、プログラミング言語、コンポーネントモデルでさまざまなタイプのシステムを通信するための標準タイプシステムを提供する必要があります。現在、これらの契約には以下が含まれます。
XMLおよびXSD
拡張可能なマークアップ言語XMLは、Webサービスプラットフォーム内のデータを表現するための基本形式です。構築して分析しやすいことに加えて、XMLの主な利点は、プラットフォームとベンダーとは何の関係もないことです。 XMLは、World Wide Web Association(W3C)によって作成されます。 W3Cによって開発されたXML SchemaxSDは、データ型の標準セットを定義し、この一連のデータ型を拡張するための言語を提供します。
Webサービスプラットフォームは、XSDをデータ型システムとして使用します。 VBなどの言語でWebサービスを構築するとき。ネットまたはC#は、Webサービス標準に準拠するために、使用するすべてのデータ型をXSDタイプに変換する必要があります。異なるプラットフォームと異なるソフトウェアの間で渡すことを望む場合は、それを何かで包む必要もあります。この種のことは、石鹸などのプロトコルです。
石鹸
SOAPは、XMLエンコード情報を交換するための軽量プロトコルであるSimple Object Access Protocalです。 3つの主な側面があります。XML-Envelopeは、情報コンテンツを説明するためのフレームワークと、コンテンツを処理する方法を定義し、プログラムオブジェクトをXMLオブジェクトにエンコードし、リモートプロシージャコール(RPC)の慣習を実行します。 SOAPは、他の輸送プロトコルで実行できます。たとえば、インターネットメールプロトコルであるSMTPを使用して、非常に魅力的なSOAPメッセージを配信できます。ヘッダーは輸送層間で異なりますが、XMLペイロードは同じままです。
Web Serviceは、「ソフトウェアソフトウェアダイアログ」の方法で異なるシステムが互いに呼び出す能力を達成し、ソフトウェアアプリケーション、Webサイト、さまざまなデバイス間の互換性のない状態を破り、「Webに基づくシーズン可能な統合」の目標を達成することを望んでいます。
WSDL
Webサービスの説明言語WSDLは、マシン読み取り可能な方法で提供される正式な説明文書であり、XMLに基づいています。これは、Webサービスとその機能、パラメーター、および戻り値を記述するために使用されます。 XMLに基づいているため、WSDLは機械可読で人間が読み取ることができます。
uddi
UDDIの目的は、eコマースの基準を確立することです。 UDDIは、Webサービスに提供されるWebベースの情報登録センターの実装基準と仕様のセットであり、他の企業がアクセスプロトコルを発見できるように企業が独自のWebサービスを登録できるようにする一連の実装基準も含まれています。 RPCとメッセージングを呼び出します
Webサービス自体は、実際にアプリケーション間の通信を実装しています。現在、アプリケーションの2つの通信方法があります。RPCリモートプロシージャコールとメッセージ配信。 RPCを使用する場合、クライアントの概念は、サーバー上のリモート手順を呼び出すことです。通常の方法は、リモートオブジェクトをインスタンス化して、そのメソッドとプロパティを呼び出すことです。 RPCシステムは、一種の位置透明性を実現しようとします。サーバーはリモートオブジェクトのインターフェイスを公開し、クライアントは局所的に使用されるこれらのオブジェクトのインターフェイスのようなものであるため、基礎となる情報を隠す必要はありません。
ウェブサービスを公開する方法は?
1. JDK1.6.0_21を後で使用して、WebServiceサービスを公開します。アドレスバーからWSDLドキュメントを表示します。
2。WSIMPORTを介してクライアントコードを生成し、実行の結果を呼び出して表示します。 (呼び出す方法を学ぶことは私たちの焦点です)。
JDKバージョンの後にJDK1.6._07がリリースされた場合、コードは完全に注釈を付ける必要があることに注意してください。 jdk1.6.0_21を使用している場合、既にWS2.1が含まれているため、@webserviceアノテーションをクラスにのみ追加できます。
ここに2つの異なるコードがあります。
JDK1.6.0_13バージョンでリリースされたWS:
パッケージcom.itcast; javax.jws.webmethodをインポートします。 javax.jws.webserviceをインポートします。 javax.jws.soap.soapbindingをインポートします。 javax.jws.soap.soapbinding.styleをインポートします。 javax.xml.ws.Endpointをインポートします。 @webservice(targetnamespace = "http:// loalhost:9999/helloworld")@soapbinding(style = style.rpc)//サポートRPCメッセージスタイルパブリッククラスhelloworld {//次のものは@webmethod、@webmethod public string saidhello } public static void main(string [] args){endpoint.publish( "http:// localhost:9999/helloworld"、new helloworld()); }} 2:以下は、JDK1.6.0_24でリリースされたWebサービスコードです。
パッケージcom.itcast; javax.jws.webserviceをインポートします。 javax.xml.ws.Endpointをインポートします。 @webservice //この注釈だけがあることに注意してください。この注釈も必要です。デフォルトのSOAPメッセージスタイルは次のとおりです。文書パブリッククラスHelloWorld {public String sayshello(){return "Helloworld"; } public static void main(string [] args){endpoint.publish( "http:// localhost:9999/helloworld"、new helloworld()); }}最初のウェブサービスサービス
パッケージcom.itcast; javax.jws.webserviceをインポートします。 javax.xml.ws.Endpointをインポートします。 / ***最初のWebService Service Application*/ // Annotationによって、このクラスはWebService @Webservice Public Class HelloWorldとして公開されていることを示しています。 } //メインメソッドでは、javax.xml.ws.Endpointエンドポイントを使用して、アプリケーションPublic Static Void Main(String [] args){endtp://127.0.0.0.0.1:99999/helloword "、New Helloworld()); }}コードの説明:Helloworldクラスのすべての非静的な暴露方法は、外部に露出します。
wsimportツール説明:
WsimportはJDKに付属するツールであり、WSDLドキュメントに基づいてクライアント側のコールコードを生成できます。もちろん、どの言語がサーバー側のウェブサービスに書かれていても、Javaコードがクライアントに生成されます。サーバー側に何が書かれているかは関係ありません。
WSimport.exeは、java_home/binディレクトリにあります。
一般的なパラメーターは次のとおりです。
•-d <Directory> -A .Classファイルが生成されます。デフォルトのパラメーター。
•-S <Directory> -.javaファイルが生成されます。
•-p <新しいパッケージ名Generated> - 指定されたパッケージの下で生成されたクラスを入力します。
(wsdlurl) - http:// server:port/service?wsdl、必要なパラメーター
使用:
1:Javaバージョンを使用して、現在のバージョン番号を確認できます。バージョンが低すぎる場合は、JDKのより高いバージョンをインストールできます。
または、d:/jdk1.6.0_24ディレクトリなど、インストールされているJDKディレクトリをマシンに直接コピーします。
以前の環境変数は、JDKディレクトリの以前の古いバージョン、つまり2つの環境変数java_homeとパスに設定されているためです。
環境変数を次のようにリセットできます:java_home = d:/jdk1.6.0_24、path =%java_home%/bin、
環境変数をリセットした後、有効にするためにドキュメント(コマンドライン)ウィンドウを再開する必要があります。
既に構成されている環境変数を変更したくない場合は、コマンドラインウィンドウに次のコマンドを入力して、JDK1.6.0_24を有効にすることができます。
パスを設定= d:/jdk1.6.0_24/bin;%パス%(入力するだけです)
次に、JDKのバージョン番号がJavaバージョンで変更されたかどうかを確認します。
2:比較的きれいなディレクトリに移動し、dディスクに新しいディレクトリ名を作成しました:ws、そしてこのディレクトリに移動します。
3:ウェブサービスをオンにします。
4:次のコマンドを入力します。
wsimport s。 http://127.0.0.1:9999/helloworld?wsdl
パラメーターの説明:-sはソースコードファイルのコンパイルを指し、次の(ポイント)は前の場所に置くことを指します。
最後のHTTPは、WSDL取扱説明書を取得するアドレスを指します。
5:この時点で、.javaファイルと.classファイルが生成されます。 (両方とも元のパッケージ名が含まれています)。コードをプロジェクトにコピーします。 (Javaファイルのみをコピー)
6:新しいプロジェクトでは、新しいクラス(任意のパッケージの下に配置できます)で、上記のコードを呼び出して、次のページのPPTを参照してください。
7:他のパラメーターをwsimport、よく使用するパラメーターは-d、-s、-pです
-D <Directory>は.Classファイルを生成します。
例:wsimport d。 http://127.0.0.1:9999/helloworld?wsdl
-s <Directory>は.javaファイルを生成します。
例:wsimport s。 http://127.0.0.1:9999/helloworld?wsdl
-p <パッケージ名>生成されたファイル(.javaまたは.classが指定されたパッケージ名に変更)を変更する
例:wsimport -S。 -p com.beijing.itcast http://127.0.0.1:9999/helloworld?wsdl
-pパラメーターについては、パッケージ名の変更に注意してください。 -Pで指定されたパッケージの下に生成されたすべてのクラスを配置します。 (デモ)
-pパラメーターのみが使用される場合、同時に-Dを使用して.classファイルにコンパイルすることに注意する必要があります。 Dパラメーターが書かれているかどうかにかかわらず、それはそこにあり、それは決して離れません。
runmain.javaのソースコードは次のとおりです。
パッケージcom.leaf; com.itcast.helloworldをインポートします。 com.itcast.helloworldserviceをインポートします。 /***生成されたクラスを呼び出してリモートコードを呼び出します*/public class runmain {public static void main(string [] args){// helloworldserice helloworld = new helloworldservice()。gethelloworldport(); string str = helloworld.sayhello(); // system.err.println(str); // helloworld stringを返す}}}を実行するWebサービスと通常のWebプログラムの違い
1。WebServiceはHTTP投稿のみを使用してデータを送信し、GETを使用しません。
1)TTTP Postのコンテンツタイプはです
(1)アプリケーション/x-www-form-urlencoded
2)WebServiceのコンテンツタイプはです
(2)テキスト/XML SOAP1.1
(3)アプリケーション/SOAP+XML SOAP1.2
2。WebServiceは、データ送信形式から制限されています。
WebServiceで使用されるデータは、XML形式に基づいています。現在、標準のWebサービスは主にSOAPプロトコルをデータ形式で使用しています。 SOAPプロトコルは、実際にはXMLエンコード仕様に基づくテキストプロトコルです。
WebServiceとWebサーバーの違い:
WebServiceはWebサーバー上のアプリケーションと考えることができます。一方、Webサーバーは、Webサービスランタイムに必要なコンテナです。これが彼らの違いとつながりです。
WebServiceの機能:
1。WebServiceは、HTTP投稿を介して顧客リクエストを受け入れます
2. SOAPプロトコルは、通常、Webサービスとクライアントの間でXMLデータを送信するために使用されます。
3.クロスプラットフォームまたはクロス言語用に設計されています。