2012-05-19 38 views
1

我正在使用Apache Tomcat在Java EE中開發Web服務,至此我已經編寫了一些基本的服務器端方法和測試客戶端。我可以成功地調用方法並獲得結果,但每次調用方法時,都會再次調用服務器構造函數,而且我也不能使用set方法修改服務器的實例變量。有沒有一種特殊的方式使我的服務器有狀態,而不使用JAX-WS或EJB @Stateful標籤?如何在沒有Jax-ws的情況下在Java EE中開發有狀態服務器

+1

通常使服務器有狀態是一個壞主意。你的問題究竟是什麼(每個請求創建另一個對象應該不成問題)? – home

+0

那麼,網絡服務將主辦一場拍賣,所以它應該收集所有客戶的出價和時間戳,並決定出價最高的人。每個客戶端都會調用發送出價方法,並重復重新創建服務器。 – bremmS

+0

所以你有一些複雜的初始化步驟? – home

回答

4

這裏有一點誤解。有狀態的EJB將維護一個客戶端和服務器之間的會話,所以仍然不會在不同客戶端之間共享EJB狀態。

您只能將無狀態和單例EJB作爲JAX-WS Web服務公開。

最好的選擇是使用數據庫來存儲所有出價和拍賣結束時選擇獲勝的。

如果你想使用一個文件時,它是好的,只要你喜歡像問題上發揮:

  1. 同步從許多客戶訪問該文件
  2. 處理事務的讀取和寫入
  3. 解決文件損壞問題
  4. 一堆其他的問題,如果你有足夠的運氣不好,可能發生

聽起來像很多工作,可以通過任何理智的數據庫引擎來完成。

相關問題