我知道之前已经提出了类似的问题,但我想知道您是否可以实际调用Servlet
来对EJB
模块进行一些工作,然后将数据返回给独立的Java GUI应用程序。
项目的要求是,独立的Java GUI客户端应用程序和Web客户端应用程序都应该访问Servet
来完成他们的工作,即从数据库更新和检索数据。
使用servlet让GUI客户端访问EJB
是否有意义,或者为什么不直接从独立的GUI应用程序访问EJB
而根本不调用Servlet
。
答案 0 :(得分:2)
是的,你可以调用一个servlet来反过来调用EJB。
但您也可以直接从独立应用程序调用EJB。如果你的servlet返回HTML标记(内容类型为“text / html” - 对于人类而言),你将不得不解析它(需要努力)才能得到相同的结果。每次标记更改时,您的客户端也必须更改。
即使中间有防火墙(=无法直接使用RMI),您也可以使用“RMI over http(s)”,并且还有基于HTTP的命名服务(JBoss提供此功能)。 / p>
另一方面,如果您指的是实现返回XML或JSON的Web服务的servlet,那么这是一种有效的方法,尤其是涉及其他语言(例如C ++)的客户端时。另一个优点是您可以使用浏览器读取结果(不需要特殊的RMI客户端)。在这种情况下,请查看available tutorials to implement a webservice in Java