blob: dc867b6d73d56324ef61701d6c31a5e26d38e1d6 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= Criando e Executando um Cliente da Aplicação no GlassFish Server
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Criando e Executando um Cliente da Aplicação no GlassFish Server - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Criando e Executando um Cliente da Aplicação no GlassFish Server
Este tutorial mostra como criar um cliente de aplicação simples e como acessar um Enterprise JavaBean (EJB) implantado no GlassFish server 3. Neste tutorial, primeiro você criará uma aplicação corporativa que contém um bean de sessão simples e um projeto de biblioteca de classe Java que contém a interface remota para o bean da sessão. Em seguida, você criará um cliente de aplicação que acessa o bean de sessão por meio da interface remota na biblioteca de classes. A biblioteca de classes JAR que contém a interface remota é adicionada ao classpath da aplicação corporativa e ao cliente da aplicação.
*Exercícios do Tutorial*
* <<Exercise_10,Criando a Biblioteca de Classe Java>>
* <<Exercise_20,Criando um Módulo EJB>>
* <<Exercise_22,Criando o Bean de Sessão>>
* <<Exercise_23,Adicionando um Método de Negócios>>
* <<Exercise_24,Implantando a Aplicação Corporativa>>
* <<Exercise_30,Criando o Cliente da Aplicação>>
* <<Exercise_32,Adicionando a Biblioteca de Classe>>
* <<Exercise_30,Executando o Cliente da Aplicação>>
*Para seguir este tutorial, são necessários os recursos e o software a seguir.*
|===
|Software ou Recurso |Versão Necessária
|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Versão Java EE 7.2, 7.3, 7.4, 8.0
|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 7 ou 8
|GlassFish Server Open Source Edition |3.x, 4.x
|===
*Pré-requisitos*
Este tutorial pressupõe que você tenha algum conhecimento básico das tecnologias a seguir, ou alguma experiência de programação com elas:
* Programação em Java
* NetBeans IDE
Você pode fazer download link:https://netbeans.org/projects/samples/downloads/download/Samples/JavaEE/EntAppClientEE6.zip[+de um arquivo compactado zip do projeto finalizado+]. Caso esteja usando o GlassFish 3.0, use link:https://netbeans.org/projects/samples/downloads/download/NetBeans%20IDE%206.8/JavaEE/entappclient.zip[+o arquivo compactado zip para o projeto do NetBeans IDE 6.8.+]
== Criando a Biblioteca de Classe Java
Nesta sessão você irá criar um projeto de Biblioteca de Classe Java que irá conter a interface remota para o EJB. A interface remota se comporta como uma API para o EJB, que é usada por clientes para se comunicar com o EJB.
A biblioteca JAR é fácil de ser distribuída para quaisquer clientes que possam precisar chamar o EJB. Os clientes que desejam acessar o EJB precisam apenas adicionar o JAR de biblioteca ao classpath do projeto. A implementação EJB usa o mesmo JAR para implementar a interface.
1. Selecione Arquivo > Novo Projeto (Ctrl-Shift-N; ⌘-Shift-N no Mac) e selecione Biblioteca de Classe Java na categoria Java. Clique em Próximo.
2. Digite *EJBRemoteInterface* como o nome do Projeto. Clique em Finalizar.
image::images/appclient-newclasslibrary.png[title="Assistente de projeto Nova Biblioteca de Classe"]
Quando você clicar em Finalizar, o IDE criará o projeto da Biblioteca de classe Java. Na próxima sessão, você criará uma aplicação corporativa Java EE e um módulo EJB. Em seguida, você usará um assistente para criar um bean de sessão e a interface remota para seu bean de sessão no projeto Biblioteca de classe. O cliente de aplicação acessará o bean de sessão por meio da interface na biblioteca de classes.
== Criando um Módulo EJB
Nesta sessão, você criará um aplicação corporativa em um módulo EJB. Quando você cria um EJB, o EJB deve ser criado como parte de uma aplicação corporativa e encapsulado como um arquivo compactado EAR e implantado no servidor.
=== Criando a Aplicação Corporativa
Nesta sessão, você irá usar o assistente Novo Projeto para criar uma aplicação corporativa contendo um módulo EJB. O assistente fornece uma opção para criar um módulo EJB quando você cria a aplicação.
1. Selecione Arquivo > Novo Projeto e selecione Aplicação Corporativa na categoria Java EE. Clique em Próximo.
2. Digite *EntAppEJB* como o Nome do Projeto. Clique em Próximo.
3. Selecione GlassFish Server como o Servidor.
4. Confirme se Criar Módulo EJB está selecionado e desfaça a seleção de Criar Módulo de Aplicação Web. Clique em Finalizar.
image::images/appclient-newentappejb.png[title="Criar Módulo EJB está selecionado no assistente Nova Aplicação Corporativa"]
Quando você clica em Finalizar, o IDE cria uma aplicação corporativa e um módulo EJB. Na janela Projetos, você pode ver que um projeto de Módulo EJB está listado no nó Módulos Java EE do projeto de aplicação corporativa.
image::images/appclient-projects-entappejb1.png[title="Janela Projetos mostrando projetos abertos"]
Você pode ver que três tipos de projetos estão agora listados na janela Projetos: biblioteca de classe, aplicação corporativa e módulo EJB.
=== Criando o Bean de Sessão
Neste exercício, você usará um assistente para criar um bean de sessão no projeto do módulo EJB. No assistente você também criará uma interface remota para o bean de sessão no projeto Biblioteca de Classe.
1. Clique com o botão direito do mouse no projeto do módulo EJB e selecione Novo > Bean de Sessão.
2. Digite *MySession* como o Nome do EJB.
3. Digite *ejb* para o Pacote.
4. Selecione Sem Estado para o Tipo de Sessão.
5. Selecione a opção Remota para Criar Interface.
6. Selecione o projeto *EJBRemoteInterface* na lista drop-down. Clique em Finalizar.
image::images/appclient-wizard-newsessionbean.png[title="Assistente de Novo Bean de Sessão"]
Quando você clica em Finalizar, o IDE cria o bean da sessão no pacote ``ejb`` no módulo EJB e abre a classe no editor. Você pode ver que ``MySession`` implementa a interface ``MySessionRemote`` e que o EJBRemoteInterface JAR foi adicionado como uma biblioteca no módulo EJB.
O assistente também cria a interface remota denominada ``MySessionRemote`` no pacote ``ejb`` do projeto EJBRemoteInterface. O IDE adiciona automaticamente a Biblioteca Java EE 6 API que é necessária para a interface EJB.
image::images/appclient-projects-entappejb2.png[title="Janela Projetos que mostra o bean de sessão e a interface remota"]
=== Adicionando um Método de Negócios
Neste exercício, você irá criar um método de negócios simples no bean de sessão que retorna uma string.
1. Clique com o botão direito do mouse no editor de MySession e selecione Inserir Código (Alt-Insert; Ctrl-I no Mac) e selecione Adicionar Método de Negócios.
2. Digite *getResult* como o Nome do Método e String como o Tipo de Retorno. Clique em OK.
3. Faça as seguintes alterações para modificar o método ``getResult`` para retornar uma string.
A classe deve ter uma aparência semelhante a esta.
[source,java]
----
@Stateless
public class MySession implements MySessionRemote {
public String getResult() {
return *"This is My Session Bean"*;
}
}
----
[start=4]
. Salve as alterações.
Agora você tem uma aplicação corporativa com um EJB simples que é exposto por meio de uma interface remota. Você também tem uma biblioteca de classe independente que contém a interface EJB que pode ser distribuída para outros desenvolvedores. Os desenvolvedores podem adicionar a biblioteca em seus projetos, caso desejem se comunicar com o EJB que é exposto pela interface remota e não precisam ter o código-fonte para o EJB. Quando você modifica o código para o EJB, somente precisa distribuir um JAR da biblioteca de classe atualizada, caso alguma das interfaces seja modificada.
Quando você usa a caixa de diálogo Adicionar Método de Negócios, o IDE implementa automaticamente o método na interface remota.
=== Implantando a Aplicação Corporativa
Agora, você pode construir e executar a aplicação corporativa. Quando você executar a aplicação, o IDE implantará o arquivo compactado EAR no servidor.
1. Clique com o botão direito do mouse na aplicação corporativa EntAppEJB e selecione Implantar.
Quando você clica em Implantar, o IDE constrói a aplicação corporativa e implanta o arquivo compactado EAR no servidor. Caso você examine a janela Arquivos, poderá ver que o JAR EJBRemoteInterface é implantado com a aplicação.
Na janela Serviços, caso você expanda o nó Aplicações do GlassFish Server 3, poderá ver que o EntAppEJB foi implantado.
== Criando o Cliente de Aplicação
Nesta seção, você irá criar um cliente de aplicação corporativa. Quando você cria o cliente de aplicação, o projeto precisa da biblioteca de classe Java, EJBRemoteInterface, para poder referenciar o EJB.
Quando você executar a aplicação corporativa, o IDE encapsulará o cliente de aplicação e a biblioteca de classe Java JAR no arquivo compactado EAR. Os JARs da biblioteca precisam ser encapsulados em um EAR com o cliente de aplicação, se você deseja acessar os JARs a partir do cliente de aplicação.
=== Criando a Aplicação Corporativa
Neste exercício, você utilizará o assistente Novo Projeto para criar um projeto de cliente de aplicação. Caso esteja usando a implantação no GlassFish 3.1 ou 4.x, você poderá criar e executar um cliente de aplicação como um projeto standalone. O cliente da aplicação não mais precisa ser implantado e executado como parte de uma aplicação corporativa.
NOTE: Se estiver implantando no GlassFish 3.01, você precisará criar o cliente de aplicação como um módulo no projeto de aplicação corporativa e executar a aplicação corporativa.
1. Selecione Arquivo > Novo Projeto e selecione Cliente de Aplicação Corporativa na categoria Java EE. Clique em Próximo.
2. Digite *EntAppClient* como o Nome do Projeto. Clique em Próximo.
3. Selecione GlassFish Server como o Servidor. Clique em Finalizar.
Observe que não é preciso adicionar o projeto em uma aplicação corporativa.
image::images/appclient-wizard-newentappclient.png[title="Criar Cliente de Aplicação selecionado no assistente Novo Projeto"]
Quando você clicar em Finalizar, o IDE criará o projeto de cliente de aplicação e abrirá ``Main.java`` no editor.
=== Adicionando a Biblioteca de Classe
A biblioteca de classe que contém a interface remota agora precisa ser adicionada ao classpath do projeto para permitir que o cliente de aplicação referencie o EJB. O projeto biblioteca de classe é aberto, para que você possa usar a caixa de diálogo Chamar Enterprise Bean, que vai ajudá-lo a gerar o código para chamar o EJB.
Caso o projeto biblioteca de classe não esteja aberto, você pode adicionar a biblioteca de classe ao projeto na janela Projetos clicando com o botão direito do mouse no nó Bibliotecas e localizando o JAR do projeto EJBRemoteInterface.
1. Expanda o nó Pacotes de Código-Fonte do projeto EntAppClient e abra o ``Main.java`` no editor.
2. Clique com o botão direito do mouse no código-fonte e selecione Inserir Código (Alt-Insert; Ctrl-I no Mac) e selecione Chamar Enterprise Bean para abrir a caixa de diálogo Chamar Enterprise Bean.
3. Expanda o nó do projeto EntAppEJB e selecione MySession. Clique em OK.
image::images/appclient-callenterprise.png[title="Caixa de diálogo Chamar Enterprise Bean"]
A caixa de diálogo seleciona, automaticamente, Remota como o tipo de interface. Quando você clica em OK, o IDE adiciona a anotação a seguir no ``Main.java`` .
[source,java]
----
@EJB
private static MySessionRemote mySession;
----
O IDE também adiciona automaticamente a EJBRemoteInterface como uma Biblioteca do projeto.
[start=4]
. Modifique o método ``main`` para recuperar a String do método ``getResult`` por meio da interface MySessionRemote. Salve as alterações.
[source,java]
----
public static void main(String[] args) {
*System.err.println("result = " + mySession.getResult());*
}
----
== Executando o Clente de Aplicação
Você agora pode executar o cliente de aplicação construindo e implantando o projeto EntAppClient.
1. Clique com o botão direito do mouse no projeto EntAppClient na janela Projetos e selecione Executar.
Como alternativa, você pode expandir o pacote do código-fonte, clicar com o botão direito do mouse na classe ``Main.java`` e selecionar Executar Arquivo.
Quando você clica em Executar, o IDE constrói o projeto do cliente de aplicação e implanta o arquivo compactado JAR no servidor. Você pode ver a mensagem do cliente de aplicação na janela de Saída.
image::images/appclient-buildoutput.png[title="O resultado na janela de Saída"]
Caso deseje criar EJBs adicionais, basta adicionar as novas interfaces remotas dos EJBs no projeto da biblioteca de classe EJBRemoteInterface.
link:/about/contact_form.html?to=3&subject=Feedback:%20Creating%20an%20Application%20Client[+Envie-nos Seu Feedback+]
== Próximas Etapas
Para obter mais informações sobre o uso do NetBeans IDE para desenvolver aplicações Java EE, consulte os seguintes recursos:
* link:javaee-intro.html[+Introdução à Tecnologia Java EE+]
* link:javaee-gettingstarted.html[+Conceitos Básicos sobre Aplicações do Java EE+]
* link:../../trails/java-ee.html[+Trilha de Aprendizado do Java EE e Java Web+]
Você pode encontrar mais informações sobre o uso do EJB Enterprise Beans no link:http://download.oracle.com/javaee/6/tutorial/doc/[+Tutorial do Java EE 6+].
Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos das funcionalidades de desenvolvimento do Java EE do NetBeans IDE, link:../../../community/lists/top.html[+inscreva-se na lista de correspondência de nbj2ee+].