我在WebLogic 10.3.5上編寫了我的第一個Java EE 5應用程序。並需要一些建築建議。Java EE Servlet作爲XMPP連接器的容器
當應用程序啓動時,我需要打開持續連接到XMPP服務器以發送即時消息。消息將不斷從表中拉出,該表將由應用程序的另一部分填充。
正如我所看到的那樣,我無法使用容器管理的對象,比如EJB,因爲我不能控制對象和套接字連接的生命週期。
Servlet是否是適用於以應用程序開始並擁有持久套接字連接的進程的候選人?
我在WebLogic 10.3.5上編寫了我的第一個Java EE 5應用程序。並需要一些建築建議。Java EE Servlet作爲XMPP連接器的容器
當應用程序啓動時,我需要打開持續連接到XMPP服務器以發送即時消息。消息將不斷從表中拉出,該表將由應用程序的另一部分填充。
正如我所看到的那樣,我無法使用容器管理的對象,比如EJB,因爲我不能控制對象和套接字連接的生命週期。
Servlet是否是適用於以應用程序開始並擁有持久套接字連接的進程的候選人?
我通過創建實例化的ServletContextListener和EJB 3.0無狀態會話bean來解決此問題。
會話bean然後使用@PostConstruct方法實例化XMPP連接,並使用@PreDestroy方法關閉連接。
我讓會話bean使用EJB 3.0 Timer來每隔幾分鐘輪詢一次消息隊列表。
可以使用servlet建立持久連接(有時稱爲保持活動連接),以下是我使用的一些資源:http://docs.oracle.com/javase/6/docs/technotes/guides/net/http -keepalive.html,我希望它有幫助。 – berkay
爲什麼不使用具有'@ PostConstruct'的'@ Singleton'' @ Startup' EJB來打開連接和'@ PreDestroy'來關閉它? – Tair
對不起,你是在JEE5 - 所以上面並不完全正確 – Tair