【问题标题】:Invoking servlet from Java GUI application?从 Java GUI 应用程序调用 servlet?
【发布时间】:2013-08-05 09:15:09
【问题描述】:

我知道以前也有人问过类似的问题,但我想知道您是否真的可以调用Servlet 来对EJB 模块进行一些工作,然后将数据返回到独立的Java GUI申请。

项目的要求是独立的 Java GUI 客户端应用程序和 Web 客户端应用程序都应该访问 Servet 来完成他们的工作,即更新和从数据库中检索数据。

使用 servlet 让 GUI 客户端访问 EJB 是否有意义,或者为什么不直接从独立的 GUI 应用程序访问 EJB 而根本不调用 Servlet

【问题讨论】:

    标签: web-services jakarta-ee servlets model-view-controller ejb


    【解决方案1】:

    是的,您可以调用一个 servlet,而后者又调用一个 EJB。

    但您也可以直接从独立应用程序调用 EJB。如果您的 servlet 返回 HTML 标记(内容类型“text/html” - 用于人类),您将不得不解析它(需要努力)以获得相同的结果。每次标记更改时,您的客户端也必须更改。

    即使中间有防火墙(= 直接 RMI 是不可能的),您也可以使用“RMI over http(s)”,并且还有一个基于 HTTP 的命名服务(JBoss 提供此功能)。

    另一方面,如果您指的是实现返回 XML 或 JSON 的 Web 服务的 servlet,这是一种有效的方法,尤其是在涉及来自其他语言(例如 C++)的客户端时。另一个优点是您可以使用浏览器读取结果(无需特殊的 RMI 客户端)。在这种情况下,请查看available tutorials to implement a webservice in Java

    【讨论】:

    • 我需要的是从 GUI 应用程序中获取的数据库数据,并更新数据库数据,主要是字符串。但是相同的servlet 将用于为 Web 客户端提供服务并返回 html。我正在努力弄清楚它们在要求中的含义。
    • 架构(您的图表)没有定义它。 Web 层可以是 servlet 和 Web 服务。我不知道他们的意图是什么,但从技术角度来看,为两个客户端使用一个 servlet 是没有意义的。
    • 我认为这是有道理的。但总的来说,这种情况会发生吗,我的意思是独立应用程序通过servlet 访问EJB 会话外观,或者他们通常直接访问EJB 层。 ——
    • 可能有原因;否则 additional servlet 层有什么用处?所以是的,直接访问 EJB - 它应该更快更简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    相关资源
    最近更新 更多