我们想在我们的 Java EE 应用程序服务器 (JBoss 4.2.3) 中处理一些客户端请求。我读到 Java EE spec doesn't allow opening a socket from an enterprise bean .但规范表明没有其他选择。
Specifically, enterprise beans should not:
- listen on, accept connections on, or multicast from a network socket
所以问题是:我可以做些什么来从应用程序服务器中提供一些基于二进制 tcp 的协议(protocol)(不是 http)?
Here有人建议实现 resource adapter .这是您必须走的路还是有其他(更简单的)解决方案?
最佳答案
您是对的,因为您可以为 Java EE 中的每个事物声明事务,所以您要连接的所有组件都必须支持它们。文件(如果有)应存储在数据库中。一切都应该由容器控制,因为这是使用 Java EE 扩展应用程序的唯一方法。
几个选项:
实现连接器 (JCA) 示例如下: http://www.theserverside.com/tt/articles/article.tss?l=J2EE1_4 如果您有现有客户,这可能是最好的方式。
使用 Java 消息队列
此处讨论了这些技术之间的关系 http://java.sun.com/products/jms/faq.html#relship_ejbs
编写将请求存储在数据库中的服务器。(不支持Tx)
如果你只有一台服务器而且看起来开销太大,你可以忽略这些 方面并遵循醋的建议。但是如果你以后需要 Tx 或额外的节点 这部分必须重新设计。
关于java - 如何从 Java EE 应用程序提供套接字服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2063364/