0

我有一个问题,听起来可能很奇怪。
我很想知道 J2EE 容器是否允许部署的应用程序为自己的目的打开直接服务器套接字(基本上绕过容器)。
我知道这样做很奇怪,但我问的原因是因为,我读过 javax.xml.endoint 不能在容器中启动,并且想知道这是否是原因。

更新:这篇文章的答案似乎与我相矛盾。一个答案(andri)指的是 EJB 规范,它是被禁止的,但 Codemwnci 的另一个答案(由 Hippo 的评论支持)说它是在生产中使用的东西。我不确定从这篇文章中得出什么结论。任何人都可以帮助清除这个吗?

谢谢你。

4

2 回答 2

2

我有一个在 WebSphere 应用程序服务器 (WAS 7) 上运行的 Web 应用程序。在其中一个应用程序中,作为在应用程序启动时运行的 servlet 的一部分,我创建了一个 ServerSocket。

这是在大规模生产环境中运行的,并且已经工作了很多年。

于 2010-10-31T16:42:56.023 回答
2

严格来说,EJB 规范是禁止的,就像禁止管理自己的线程一样:

企业 bean 不得尝试侦听套接字、接受套接字上的连接或使用套接字进行多播。

不允许这样做的可能原因是分布式应用程序和在应用程序服务器实例之间移动 EJB。打开原始套接字的“官方”解决方案是编写 JCA 连接器。

于 2010-10-31T16:51:09.303 回答