1

使用 Java EE 和 CDI 将 EJB 注入应用程序客户端并让应用程序客户端与 EJB 对话非常简单。真的很简单。而且,这种交流是书籍和互联网的全部内容。似乎没有人担心或需要让对话反过来进行。好吧,我希望我的 EJB 能够将事件和通知推送到源自服务器的应用程序客户端(应用程序客户端使用 Java Web Start 启动)。

当然,我可以让应用程序客户端像不断地从服务器轮询数据,但是,我不认为这是一个好的设计。我的 Web 客户端正在使用 ajax 长拉(彗星),它们对服务器的负担真的应该比我的应用程序客户端更小吗?

在我看来,JMS 是我唯一的选择。对于我将在两者之间进行的简单通信来说,这似乎有点过头了,我所知道的是,JAVA 端点 =) 我尝试了 RMI 并将远程存根从应用程序客户端推送到 EJB,但后来我得到了异常告诉我有问题的对象已经是某种远程存根。唔。

你有想法吗?

编辑

这里也有类似的讨论。他们也认为除了使用 JMS 之外别无他法。我发现我所有的 Java EE 书籍或官方 Oracle 教程都没有解决这个问题,这有点“令人困惑”。甚至在一个小的旁注中也没有。在这个宇宙中,只有我一个人在努力做我想做的事吗?

4

2 回答 2

0

如果您不想打开自己的套接字,也不希望客户端启动服务器可以使用的 Web 服务,那么还有另一种 JMS 替代方案。即 Java EE 7 WebSocket。它们是全双工的。

于 2014-01-10T20:29:33.017 回答
0

这里同样的问题。

我自己提出了相同的解决方案——从服务器发送 JMS 并从客户端的 MDB 中收听它,然后从客户端的缓存中提取它,以减少服务器负载。

而且我不能使用 WebSocket。


另外,您可以尝试使用 GifSocket。它非常简单并且与 IE6 兼容!c: https://github.com/videlalvaro/gifsockets

于 2015-03-09T15:49:05.847 回答