2011-08-09 18 views
1

定義時 -JSF-1.2-Question。策略保存當前應用程序狀態(託管bean狀態)重定向到外部服務

  • 有工作web應用程序與在某個時刻管理bean的狀態。
  • 這個web應用程序的職位要求外部應用
  • 外部應用程序調用回(HTTP「得到」法)web應用程序

    - 這時應用程序應該恢復管理bean的狀態就像在申請外部申請之前一樣。

    - 注意:外部應用程序可能會稍後響應,而不是Web應用程序會話持續時間最後。

問題 - 如果周圍有這樣的問題,在JSF模式或技術?

你是怎麼處理這樣的問題的?

回答

0

將狀態與唯一鍵一起存儲在會話作用域中,並將該鍵作爲請求參數或pathinfo包含在回調URL中。收到回調請求時,從請求參數或pathinfo中提取密鑰,然後根據該密鑰從會話中獲取狀態。

+0

好的,我用這種方法看到的一個缺點是,外部應用程序可能會在Web應用程序會話過期後發送回調(用戶延遲對外部應用程序執行操作)。那是什麼? –

+0

將其存儲在應用程序範圍內。確保密鑰**強**。 'java.util.UUID'在這方面非常有用。 – BalusC

+0

這會有所幫助,但是從外部應用程序回調可能永遠不會回到web應用程序......並且我認爲應用程序範圍會影響網絡應用程序的內存,因爲它會一直保存在內存中,直到重新啓動Web應用程序。 Web-app是大量使用的應用程序,這種內存中毒可能會對我的性能產生相當大的影響。你會考慮自毀應用程序對象(在一段時間後,當沒有收到來自外部應用程序的響應)。 –