Xml-rpc-xml-rpc-examples
提供:Dev Guides
XML-RPC-例
XML-RPCを実証するために、Javaを使用してXML-RPCメッセージを処理するサーバーを作成し、そのサーバーでプロシージャを呼び出すJavaクライアントを作成します。
会話のJava側は、http://xml.apache.org/xmlrpc/で入手可能なApache XMLプロジェクトのApache XML-RPCを使用します。
すべての.jarファイルを適切なパスに配置し、JAVAを使用して1つのクライアントと1つの小さなXML-RPCサーバーを作成します。
XML-RPCクライアント
sum functionという関数を呼び出すXML-RPCクライアントを記述しましょう。 この関数は2つのパラメーターを取り、それらの合計を返します。
上記のクライアント例で何が起こったのか見てみましょう。
- Javaパッケージorg.apache.xmlrpcには、XML-RPC JavaクライアントおよびXML-RPCサーバー(XmlRpcClientなど)のクラスが含まれています。
- パッケージjava.utilは、Vectorクラスに必要です。
- 関数_server.execute(…)_は、リクエストをサーバーに送信します。 プロシージャsum(17,13)は、ローカルプロシージャであるかのようにサーバー上で呼び出されます。 プロシージャコールの戻り値は常にオブジェクトです。
- ここで、「サンプル」はサーバーで定義されているハンドラーを示します。
- プロシージャコールのすべてのパラメーターは常にベクターに収集されることに注意してください。
- XmlRpcClientクラスは、サーバーマシンの「Webアドレス」に続いて/RPC2を指定することにより構築されます。
- localhost-ローカルマシンを意味します
- localhostの代わりにIP番号を指定できます。 194.80.215.219
- xyz.dyndns.orgのようなドメイン名を指定できます
- ポート番号とドメイン名をxyz.dyndns.org:8080のように指定できます。 デフォルトのポートは80です
- リモートプロシージャコールの結果は常にオブジェクトであり、適切な型にキャストする必要があることに注意してください。
- 問題が発生した場合(接続がないなど)、例外がスローされ、_catch_ステートメントを使用してキャッチする必要があります。
上記の呼び出しにより、クライアントは次のメッセージをサーバーに送信します。 これは_server.execute(…)_によって内部的に処理され、それとは何の関係もないことに注意してください。
XML-RPCサーバー
以下は、Javaで記述されたXML-RPCサーバーのソースコードです。 _org.apache.xmlrpc。* _で利用可能な組み込みクラスを利用します
上記のサンプルサーバーで行ったことを見てみましょう。
- パッケージorg.apache.xmlrpcには、XML-RPCサーバー実装用のクラスWebServerが含まれています。
- リモートで呼び出されるプロシージャ_sum_は、クラスのパブリックメソッドとして実装されます。
- 次に、同じサーバークラスのインスタンスが、クライアントからアクセス可能なハンドラーに関連付けられます。
- サーバーはポート番号(ここでは80)で初期化されます。
- 問題が発生すると、例外がスローされ、_catch_ステートメントを使用してキャッチする必要があります。
指定されたクライアント例で言及されている呼び出しに対して、サーバーはクライアントに次の応答を送り返します。
これでサーバーの準備ができたので、プロンプトで次のようにコンパイルして実行します。
次に、機能をテストするために、次のようにこのサーバーに呼び出しを行います。