Os projetos de cliente aplicativo contêm os recursos necessários para módulos de cliente aplicativo. Um módulo de cliente aplicativo é utilizado para conter um aplicativo Java™ de função completa do cliente (não baseado na Web) que se conecta e utiliza os recursos J2EE definidos no servidor. Quando você coloca o código do cliente em um módulo de cliente aplicativo, em vez de em um simples arquivo JAR, o cliente aplicativo se beneficia dos recursos do servidor (ele não precisa reespecificar o caminho de classe para o J2EE e arquivos JAR do servidor) assim como de maior facilidade na consulta JNDI (o contêiner do cliente preenche o contexto inicial e outros parâmetros). O projeto de cliente aplicativo permite trabalhar como se você estivesse criando um aplicativo Java independente em um projeto Java.
Um projeto de cliente aplicativo permite executar o seguinte:
Como projetos Java, os projetos de cliente aplicativo contêm os recursos necessários para clientes de aplicativo, incluindo arquivos de classe Java. Quando você cria um novo projeto de cliente aplicativo, o ambiente é configurado para desenvolvimento Java. Um construtor Java é associado ao projeto para que o Java source possa ser compilado aos poucos conforme é atualizado. O projeto de cliente aplicativo contém informações sobre a hierarquia de tipo e os elementos Java. Essas informações serão mantidas atualizadas conforme as alterações forem feitas e o construtor Java compilará os recursos aos poucos nesses projetos conforme forem atualizados.
No ambiente de trabalho, os projetos de cliente aplicativo são sempre referidos por projetos do aplicativo corporativo (EAR). Quando você cria um projeto de cliente aplicativo, você especifica o projeto de aplicativo corporativo ao qual o projeto de cliente aplicativo pertence. Um elemento de módulo é incluído automaticamente no descritor de implementação application.xml do projeto EAR.
Um projeto de cliente aplicativo é implementado como um arquivo JAR. Esse arquivo JAR do cliente aplicativo contém os recursos necessários para o aplicativo, incluindo arquivos de classe Java e informações do descritor de implementação, além de extensões de metadados e arquivos de ligação.
Os projetos de cliente aplicativo são normalmente executados em sistemas clientes em rede conectados a servidores J2EE (EJB). O ponto de entrada do cliente aplicativo é uma classe principal Java, que é apenas uma classe Java que contém um método estático principal. A classe é declarada no arquivo de manifesto do módulo de cliente.
Um contêiner do cliente aplicativo J2EE fornece acesso ao serviço J2EE (serviços de nomenclatura JNDI, serviços de implementação, serviços de transação e serviços de segurança) e APIs de comunicação (internet protocols, protocolos Remote Method Invocation, protocolos do Grupo de Gerenciamento de Objetos, protocolos do Sistema de Mensagens e formatos de dados).
Por padrão, os projetos de cliente aplicativo contêm uma pasta chamada appClientModule, que contém código fonte Java e arquivos .class compilados, juntamente com todos os arquivos de metadados na subpasta META-INF.