Apache CXF を使用して実装された Web サービスを使用して相互に通信するクライアント サーバー アプリケーションのサーバー部分を構築しています。
アプリケーションでは、Web アプリケーションがデプロイされたときに作成され、停止またはアンデプロイされるまで存続するオブジェクトが必要です。
と呼びましょうMyBackend backend
。
http://myserver.com/service1
また、やなどのさまざまな Web サービスも必要ですhttp://myserver.com/service2
。
- クライアントからのリクエストを受け、
- それらを
backend
オブジェクトに渡し、 MyBackend
メソッドの戻り値をクライアントに送り返します。
の同じインスタンスを使用する次の 2 つのクラスを作成する予定ですMyBackend
。
@Path("/service1")
public class MyWebService1 {
private MyBackend backend = ...;
@POST
@Produces("text/plain")
public String performOperation1(@FormParam("request") final String aRequest)
{
return backend.doSomething();
}
}
@Path("/service2")
public class MyWebService2 {
private MyBackend backend = ...;
@POST
@Produces("text/plain")
public String performOperation2(@FormParam("request") final String aRequest)
{
return backend.doSomethingDifferent();
}
}
質問:
- このように Web サービスを実装すると、
MyBackend
インスタンスの状態はさまざまな Web サービス呼び出し間で保持されますか (上記で説明したように、アプリケーションがアプリ コンテナー内で実行される限り、このオブジェクトは有効である必要があります)。 - インスタンスをどこで作成および初期
MyBackend
化できますか (データベースへの接続のために初期化が長く続く可能性があることを考慮して) ? - バックエンド オブジェクトのシャットダウン プロシージャはどこにありますか (データベースへの接続の切断など)。