所以我最基本的问题是:如何在Java EE应用程序中构建TCP接口?我需要与一块TCP / IP端口进行交互,而不是与传统的EIS交互。理想情况下,我希望消息驱动的bean能够通过传入的TCP请求调用它的onMessage方法,并且能够通过同一连接进行响应。
JCA似乎足以在Java EE环境中具备这样的能力。开发自定义连接器是否是在Java企业生态系统中集成入站/出站TCP接口的适当技术?
就我迄今为止所尝试的内容而言:我们目前正在使用一个生命周期模块,该模块首先启动了许多TCP侦听器;这将调用一个消息驱动的bean,它调用一个业务方法,并且它都返回同一个TCP流。这实际上工作正常,但我的应用程序服务器(Glassfish)中的生命周期支持感觉就像是事后添加的。因此,JCA似乎是解决此类问题的一流解决方案,它似乎使我们能够通过TCP进行通信。
然而,从我们进行的初步研究来看,似乎连接器架构是“针对”传统信息系统,而不是通用TCP通信。所以,我的问题可以呈现:是否有人使用自定义JCA将TCP / IP集成到他们的Java EE应用程序中 - 或者是否有更好的技术来接受来自我的EJB的TCP连接?
答案 0 :(得分:2)
MXBeans和JCA(MXBeans更容易,已经实现了两者)但基本上你只需要启动/停止两件事,并且可能依赖其他MXBeans / JCA / JNDI来执行你的服务,而AppServer生成所需的代理服务器你。
真正的应用程序:黑客tomcat w / NIO接受器可以捕获80 + 443端口上的连接并仍然正常使用Web服务器。 接下来是完整平台(包括自己的(重新)部署者)来管理会话/消息和所有爵士乐。
答案 1 :(得分:1)
看来你已经解决了你的初始问题。这很好,但为了帮助人们,这是一个很好的样本:http://code.google.com/p/jca-sockets