3

我正在 WebLogic 10.3.5 上编写我的第一个 Java EE 5 应用程序。并且需要一些架构建议。

当应用程序启动时,我需要打开到 XMPP 服务器的持久连接以发送即时消息。消息将不断地从表格中提取,该表格将由应用程序的另一部分填充。

正如我所看到的,我不能为此使用容器管理的对象,例如 EJB,因为这样我就无法控制对象和套接字连接的生命周期。

Servlet 是否适合以应用程序开头并持有持久套接字连接的进程?

4

2 回答 2

2

看起来您将使用 Markus Eisele 在他的博文中列出的选项之一。提到了应用程序生命周期侦听器的特定于 Weblogic 的机制(但它不是纯 Java EE)。

于 2012-09-03T09:55:03.763 回答
1

我通过创建实例化 EJB 3.0 无状态会话 bean 的 ServletContextListener 解决了这个问题。

然后会话 bean 使用 @PostConstruct 方法实例化 XMPP 连接并使用 @PreDestroy 方法关闭连接。

我让会话 bean 使用 EJB 3.0 计时器每隔几分钟轮询一次消息队列表。

于 2012-09-03T16:26:30.433 回答