应用程序客户端和独立客户端之间的区别

时间:2009-12-11 12:35:55

标签: java java-ee glassfish application-client

正如标题所示,这与Java EE和Glassfish有关。

据我所知,应用程序客户端在一些能够与glassfish交谈的应用程序客户端中执行。但是关于注释似乎存在局限性。

  1. 有人能举例说明从两种不同的应用程序类型连接到glassfish应用程序服务器的不同之处吗?

  2. 应用程序客户端方法的好处是什么,以及在为Java EE开发应用程序客户端时最常用的方法是什么?

2 个答案:

答案 0 :(得分:4)

应用程序客户端实际上在容器中运行,并且对服务器上定义的Java EE资源具有与Servlet或EJB相同的完全访问权限。这通常用于某种类型的管理客户端,而不是用户应用程序。 Here is one explanation

除了Java EE Application Client之外,还有Thin Client的概念,它允许访问某些Java EE资源,但不像App Client那样容易。它通常涉及使用绝对名称的JNDI查找,因为JNDI引用不可用。一个典型的例子是JMS消息的独立生产者/消费者。它基本上是完整App Client的轻量级选项。

如果您只是创建一个用户应用程序,您很可能希望使用瘦客户端模型,或者只是通过servlet或Web服务调用从Java EE应用程序中获取服务的普通旧应用程序。

答案 1 :(得分:4)

在任何一种情况下,与连接到应用服务器相关联的代码(你需要做的工作)并不是那么难......但它包含在不同的文档中。

这些是the instructions on how to access an EJB from a stand-alone java application

这些是使用应用程序客户端通过GlassFish v3从Java EE 6应用程序客户端访问EJB的说明:http://docs.sun.com/app/docs/doc/820-7695/beakt?l = EN&安培; A =视图

从应用程序客户端访问EJB使您可以“自动”访问更多Java EE服务,而不是“直接使用EJB”。您可以在独立案例中拼凑访问其中一些服务,但负担转移到应用程序开发人员/部署人员以使该访问工作。

创建一个访问EJB的独立应用程序在短期内看似简单,很多人都会投资该策略。如果他们将客户端应用程序部署到大量计算机上,那么与拼凑在一起的服务访问策略相关的负担就会成为负担。

部署使用应用程序客户端容器的应用程序客户端也不是免费的。优点是您可以获得应用服务器供应商的支持,以克服部署问题。

如果您使用的是GlassFish(v2.1,v2.1.1或v3),您还可以利用Java Web Start支持,这大大简化了客户端应用程序的部署。