のRestletを使用すると、さまざまなサーバー「コネクター」にあなたのWebサービスを実行することができますし、サーバーから別のサーバーへ切り替えることは非常に簡単です。私たちは通常、Sun Glassfish Java EEアプリケーションサーバークラスタ上でWebサービスを実行しますが、テストのために、Simple HTTP Serverとリンクするコネクタを使用して、Webサービスをスタンドアロンアプリケーションとして実行します。 AsyncWeb、Jetty、Grizzly、および内部HTTPサーバー用のサーバーコネクタもあります。
クライアント側では、Restletクライアントライブラリを考慮する必要があります。これはかなり簡潔で、Restletサーバーとよくマッチするように設計されています。 Apache HTTP Clientコネクタを使用します。
テストのために、Fetcherクラスを作成しました。これは、RestletクライアントAPIを使用して実装されます。
DTO person = fetch("/employee/1234");
DTO department = fetch("/department/" + person.getDepartment());
は(フェッチ)へのRestletクライアントAPIを使用して、ベースのWebサービスのURI(「http://localhost:8182」と言う)に指定されたリソース名を鋲:それを使用するには、かなりのフェッチ()メソッドを呼び出しますXML表現をフェッチし、フェッチされたXMLをデシリアライズしてデータ転送オブジェクト(POJO)にします。
これは実際にユニットテストを非常に簡単にすることがわかります。単体テストの前に、SimpleやJettyのようなスタンドアロンのサーバーでWebサービスを起動します。ユニットテストの間に、DTO、DOMツリー、json.orgオブジェクト、またはFetcherを使用するものをフェッチし、返されたものにテストアサーションを適用します。より詳細なレベルでテストする必要がある場合は、Restletクライアントコードを直接使用することができます。
私の質問の全体的なポイントは、プロセス内のWebサービス/コンポーネントをどのように初期化するかを理解することでした。私は望んでいない/リモートサーバー上で実行することはできません。 Webサービスとして公開される前に、模擬されたインスタンスでサービスを初期化する必要があります。クラス/コンポーネントのインスタンスをサービスとして公開する方法はありますか? – IgorM
答えは? IgorM - あなたはそれを仕上げましたか? – Vatsala