0
我構建了一個客戶機 - 服務器應用程序的服務器部分,它使用Web服務相互通信,使用Apache CXF實現。基於Apache CXF的應用程序中的長壽命對象
在應用程序中,我希望有一個對象,它是在部署Web應用程序時創建的,直到停止和/或取消部署爲止。
我們稱之爲MyBackend backend
。
我也希望有不同的網絡服務,如http://myserver.com/service1
和http://myserver.com/service2
,這
- 接收來自客戶端的請求,
- 它們傳遞到
backend
對象和 - 送
MyBackend
方法的返回值回到客戶端。
我打算創建以下兩個類,它們使用相同的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();
}
}
問題:
- 如果我實現這樣的網絡服務,將
MyBackend
實例的狀態可以在不同的Web服務調用保存(如上所述,我需要這個對象是隻要應用程序在應用程序容器中運行,就一直存在)? - 在哪裏可以創建並初始化
MyBackend
實例(考慮到由於連接到數據庫,初始化可能會持續很長時間)? - 後端對象的關閉過程應該放在哪裏(如切斷與數據庫的連接)?
謝謝。你能推薦一個基於Spring的web服務的最小代碼示例(最好是mavenised)嗎? – 2013-04-23 10:37:15
@DmitriPisarenko您已經擁有該代碼,請查看http://cxf.apache.org/docs/embedding-cxf-inside-spring.html瞭解如何將CXF集成到Spring中。 – Qwerky 2013-04-23 12:17:01