Difference between an application client and a stand-alone client

Peter Lindqvist picture Peter Lindqvist · Dec 11, 2009 · Viewed 8.4k times · Source

As the title suggests, this is in relation to Java EE and Glassfish in particular.

From what i've learned the application client is executed in some application client that has the ability to talk to glassfish. But there seems to be limitations to this regarding annotations.

  1. Can someone give me an example of the difference in connecting to a glassfish application server from the two different application types?

  2. What is the benefit of the application client approach, and what approach is the most commonly used when developing application clients for Java EE?

Answer

Robin picture Robin · Dec 11, 2009

An application client is actually run in a container and has full access to Java EE resources defined on your server in the same way that a Servlet or EJB does. This would typically be used for some type of admin client, not a user application. Here is one explanation.

In addition to the Java EE Application Client, there is also the concept of a Thin Client, which allows access to some Java EE resources as well, but not as easily as the App Client. It usually involves using JNDI lookup with absolute names as JNDI references are not available. A typical case for this would be a standalone producer/consumer of JMS messages. It is basically a lighter weight option of the full App Client.

If you are simply creating a user application, you will most likely want to either use a Thin Client model, or a plain old application that simply consumes services from your Java EE app via servlet or web service calls.