我们希望在我们的Java EE应用服务器(JBoss 4.2.3)中提供一些客户请求。我读到了Java EE spec doesn't allow opening a socket from an enterprise bean。但是规范建议没有其他选择。



因此,问题是:我该怎么办才能在应用程序服务器中提供一些基于二进制 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/

    10-09 00:47
    查看更多