Java EE新手;服务/守护进程的架构建议?
我是Java EE世界的新手.作为一个尝试熟悉Java EE的练习,我正在尝试创建一个分层的Web应用程序,但我有点卡在最好的方法是在后台启动服务工作. 服务参数: >它必须打开并保持套接字连接并从连接的服务器接收信息. 因此,想法是用户按下网页上的按钮,并在服务器上的某个位置打开套接字连接.对于剩余的用户会话(或者直到用户按下某种断开按钮),套接字保持打开状态并将接收的信息推送到某种集中式存储,servlet可以通过AJAX查询并返回给用户. 是否有Java EE类型的方法来处理这种情况?当然,我想要做的就是编写一个Java应用程序来监听servlet可以连接的端口并生成打开这些套接字的新线程,但这对我来说似乎非常特别. (PS:我也是Stack Overflow的新手,所以请原谅我,如果我需要一些时间来计算网站!) 最佳答案
Java EE堆栈中有三个主要容器:Web容器,EJB容器和JCA容器. JCA旨在提供与第三方系统的入站和出站连接,例如数据库,JMS代理或其他.
从EJB或Web应用程序创建到Telnet服务器的连接的“正确”方法是使用JCA连接器.
管道|表示远程边界.假设EJB是本地人,但无论如何它们都是可选的;您也可以使用Web层中的JCA连接器. 我建议您调查是否存在实施.一个快速的谷歌给了我这个结果:JCA connector for Telnet client. 另一种方法(但不符合规范)是从ServletContextListener启动侦听套接字的线程.该线程将在Web层中运行,您可以根据需要管理与Telnet服务器的连接. 我建议你也看看这个其他的SO问题:Java EE application that listens to a socket. 在这两种情况下,您可能需要弄清楚如何临时存储Telnet服务器(您提到的集中式存储)接收的信息,这些信息稍后将显示在Web界面中.这对Java EE来说也是个问题,因为规范禁止使用全局状态.例如,您不应该在理论上使用静态字段.但实际情况是,如果您只有一个应用程序实例在运行. 这只是一个粗略的草图,但我希望它有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |