blob: 6fc2f00dddede051bc81ee3ab90980f24f5250ef [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Criando e Executando um Cliente da Aplicação no GlassFish Server</title>
<meta name="description"
content="A tutorial on how to use NetBeans IDE to develop and deploy an enterprise application client to GlassFish Server 3.">
<link rel="stylesheet" href="../../../netbeans.css">
<meta name="author" content="ken ganfield">
<meta HTTP-EQUIV="Content-Type" Content="text/html; charset=UTF-8"></head>
<body>
<!-- Begin Content Area -->
<h1>Criando e Executando um Cliente da Aplicação no GlassFish Server</h1>
<p>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.</p>
<p><b>Exercícios do Tutorial</b></p>
<img alt="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0">
<ul>
<li><a href="#Exercise_10">Criando a Biblioteca de Classe Java</a></li>
<li><a href="#Exercise_20">Criando um Módulo EJB</a>
<ul>
<li><a href="#Exercise_22">Criando o Bean de Sessão</a></li>
<li><a href="#Exercise_23">Adicionando um Método de Negócios</a></li>
<li><a href="#Exercise_24">Implantando a Aplicação Corporativa</a></li>
</ul>
</li>
<li><a href="#Exercise_30">Criando o Cliente da Aplicação</a>
<ul>
<li><a href="#Exercise_32">Adicionando a Biblioteca de Classe</a></li>
</ul>
</li>
<li><a href="#Exercise_30">Executando o Cliente da Aplicação</a></li>
<!--<li><a href="#Exercise_40">Downloading the Solution Project</a></li>-->
</ul>
<p><b>Para seguir este tutorial, são necessários os recursos e o software a seguir.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software ou Recurso</th>
<th class="tblheader" scope="col">Versão Necessária</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
<td class="tbltd1">Versão Java EE 7.2, 7.3, 7.4, 8.0</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK (Java Development Kit)</a></td>
<td class="tbltd1">versão 7 ou 8</td>
</tr>
<tr>
<td class="tbltd1">GlassFish Server Open Source Edition</td>
<td class="tbltd1">3.x, 4.x</td>
</tr>
</tbody>
</table>
<p><b>Pré-requisitos</b></p>
<p>Este tutorial pressupõe que você tenha algum conhecimento básico das tecnologias a seguir, ou alguma experiência de programação com elas:</p>
<ul>
<li>Programação em Java</li>
<li>NetBeans IDE</li>
</ul>
<p class="tips">Você pode fazer download <a href="https://netbeans.org/projects/samples/downloads/download/Samples/JavaEE/EntAppClientEE6.zip">de um arquivo compactado zip do projeto finalizado</a>. Caso esteja usando o GlassFish 3.0, use <a href="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.</a></p>
<!-- ===================================================================================== -->
<a name="Exercise_10"></a>
<h2>Criando a Biblioteca de Classe Java</h2>
<p>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.</p>
<p>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.</p>
<!--appclient runs locally on client and if it needs to communicate with an EJB on server then
EJB must have Remote interface which appclient will use.
.... something like that followed by
"so let's start with creating class lib project"-->
<ol>
<li>Selecione Arquivo > Novo Projeto (Ctrl-Shift-N; ⌘-Shift-N no Mac) e selecione Biblioteca de Classe Java na categoria Java. Clique em Próximo.</li>
<li>Digite <strong>EJBRemoteInterface</strong> como o nome do Projeto. Clique em Finalizar. </li>
</ol>
<img alt="obtendo tela do assistente de projeto de Nova Biblioteca de Classe" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-newclasslibrary.png" title="Assistente de projeto Nova Biblioteca de Classe" />
<p>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.</p>
<a name="Exercise_20"></a>
<h2>Criando um Módulo EJB</h2>
<p>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.</p>
<div class="indent">
<a name="Exercise_21"></a>
<h3>Criando a Aplicação Corporativa</h3>
<p>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.
</p>
<ol>
<li>Selecione Arquivo > Novo Projeto e selecione Aplicação Corporativa na categoria Java EE. Clique em Próximo.</li>
<li>Digite <strong>EntAppEJB</strong> como o Nome do Projeto. Clique em Próximo.</li>
<li>Selecione GlassFish Server como o Servidor.</li>
<li>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. </li>
</ol>
<img alt="tela do assistente Nova Aplicação Corporativa" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-newentappejb.png" title="Criar Módulo EJB está selecionado no assistente Nova Aplicação Corporativa" />
<p>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.</p>
<img alt="tela da janela Projetos mostrando projetos abertos" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-projects-entappejb1.png" title="Janela Projetos mostrando projetos abertos" />
<p>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.</p>
<a name="Exercise_22"></a>
<h3>Criando o Bean de Sessão</h3>
<p>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.
</p>
<ol>
<li>Clique com o botão direito do mouse no projeto do módulo EJB e selecione Novo > Bean de Sessão.</li>
<li>Digite <strong>MySession</strong> como o Nome do EJB.</li>
<li>Digite <strong>ejb</strong> para o Pacote.</li>
<li>Selecione Sem Estado para o Tipo de Sessão.</li>
<li>Selecione a opção Remota para Criar Interface.</li>
<li>Selecione o projeto <strong>EJBRemoteInterface</strong> na lista drop-down. Clique em Finalizar. </li>
</ol>
<img alt="tela do assistente Novo Bean de Sessão" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-wizard-newsessionbean.png" title="Assistente de Novo Bean de Sessão" />
<p>Quando você clica em Finalizar, o IDE cria o bean da sessão no pacote <tt>ejb</tt> no módulo EJB e abre a classe no editor. Você pode ver que <tt>MySession</tt> implementa a interface <tt>MySessionRemote</tt> e que o EJBRemoteInterface JAR foi adicionado como uma biblioteca no módulo EJB.</p>
<p>O assistente também cria a interface remota denominada <tt>MySessionRemote</tt> no pacote <tt>ejb</tt> do projeto EJBRemoteInterface. O IDE adiciona automaticamente a Biblioteca Java EE 6 API que é necessária para a interface EJB.</p>
<img alt="tela da janela Projetos que mostra o bean de sessão e a interface remota" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-projects-entappejb2.png" title="Janela Projetos que mostra o bean de sessão e a interface remota" /> <a name="Exercise_23"></a>
<h3>Adicionando um Método de Negócios</h3>
<p>Neste exercício, você irá criar um método de negócios simples no bean de sessão que retorna uma string.
</p>
<ol>
<li>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.</li>
<li>Digite <strong>getResult</strong> como o Nome do Método e String como o Tipo de Retorno. Clique em OK.
</li>
<li>Faça as seguintes alterações para modificar o método <tt>getResult</tt> para retornar uma string.
<p>A classe deve ter uma aparência semelhante a esta.</p>
<pre class="examplecode">@Stateless
public class MySession implements MySessionRemote {
public String getResult() {
return <strong>"This is My Session Bean"</strong>;
}
}</pre>
</li>
<li>Salve as alterações.</li>
</ol>
<p>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.</p>
<p class="tips"> Quando você usa a caixa de diálogo Adicionar Método de Negócios, o IDE implementa automaticamente o método na interface remota.</p>
<a name="Exercise_24"></a>
<h3>Implantando a Aplicação Corporativa</h3>
<p>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.</p>
<ol>
<li>Clique com o botão direito do mouse na aplicação corporativa EntAppEJB e selecione Implantar.</li>
</ol>
<p>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.</p>
<p>Na janela Serviços, caso você expanda o nó Aplicações do GlassFish Server 3, poderá ver que o EntAppEJB foi implantado.</p>
</div>
<a name="Exercise_30"></a>
<h2>Criando o Cliente de Aplicação</h2>
<p>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.</p>
<p>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.
</p>
<div class="indent">
<a name="Exercise_31"></a>
<h3>Criando a Aplicação Corporativa</h3>
<p>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.</p>
<p class="notes"><strong>Observação.</strong> 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.</p>
<ol>
<li>Selecione Arquivo > Novo Projeto e selecione Cliente de Aplicação Corporativa na categoria Java EE. Clique em Próximo.</li>
<li>Digite <strong>EntAppClient</strong> como o Nome do Projeto. Clique em Próximo.</li>
<li>Selecione GlassFish Server como o Servidor. Clique em Finalizar.
<p>Observe que não é preciso adicionar o projeto em uma aplicação corporativa.</p>
</li>
</ol>
<img alt="tela de Criar Cliente de Aplicação no assistente Novo Projeto" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-wizard-newentappclient.png" title="Criar Cliente de Aplicação selecionado no assistente Novo Projeto" />
<p>Quando você clicar em Finalizar, o IDE criará o projeto de cliente de aplicação e abrirá <tt>Main.java</tt> no editor.</p>
<a name="Exercise_31"></a>
<h3>Adicionando a Biblioteca de Classe</h3>
<p>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.
</p>
<p class="tips">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.</p>
<ol>
<li>Expanda o nó Pacotes de Código-Fonte do projeto EntAppClient e abra o <tt>Main.java</tt> no editor.</li>
<li>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.</li>
<li>Expanda o nó do projeto EntAppEJB e selecione MySession. Clique em OK.<br /> <img alt="tela da caixa de diálogo Chamar Enterprise Bean" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-callenterprise.png" title="Caixa de diálogo Chamar Enterprise Bean" />
<p>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 <tt>Main.java</tt>.
<pre class="examplecode">@EJB
private static MySessionRemote mySession;</pre>
<p>O IDE também adiciona automaticamente a EJBRemoteInterface como uma Biblioteca do projeto.</p>
</li>
<li>Modifique o método <tt>main</tt> para recuperar a String do método <tt>getResult</tt> por meio da interface MySessionRemote. Salve as alterações.
<pre class="examplecode">
public static void main(String[] args) {
<strong>System.err.println("result = " + mySession.getResult());</strong>
}</pre>
</li>
</ol>
</div>
<a name="Exercise_40"></a>
<h2>Executando o Clente de Aplicação</h2>
<p>Você agora pode executar o cliente de aplicação construindo e implantando o projeto EntAppClient.</p>
<ol>
<li>Clique com o botão direito do mouse no projeto EntAppClient na janela Projetos e selecione Executar.
<p>Como alternativa, você pode expandir o pacote do código-fonte, clicar com o botão direito do mouse na classe <tt>Main.java</tt> e selecionar Executar Arquivo.</p></li>
</ol>
<p>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.</p>
<img alt="tela da janela de Saída que mostra o resultado" class="margin-around b-all" src="../../../images_www/articles/72/javaee/entappclient/appclient-buildoutput.png" title="O resultado na janela de Saída" />
<p>Caso deseje criar EJBs adicionais, basta adicionar as novas interfaces remotas dos EJBs no projeto da biblioteca de classe EJBRemoteInterface.</p>
<!--
<a name="Exercise_50"></a>
<h2>Downloading the Solution Project</h2>
<p>You can download the solution to this tutorial as a project in the following ways.</p>
<ul>
<li>Download <a href="https://netbeans.org/projects/samples/downloads/download/Samples%252FJavaEE%252Fentappclient.zip">a zip archive of the finished project</a>.</li>
<li>Checkout the project sources from the NetBeans Samples by performing the following steps:
<ol>
<li>Choose Team &gt; Subversion &gt; Checkout from the main menu.</li>
<li>In the Checkout dialog box, enter the following Repository URL:<br/>
<tt>https://svn.netbeans.org/svn/samples~samples-source-code</tt><br/>
Click Next.</li>
<li>Click Browse to open the Browse Repostiory Folders dialog box.</li>
<li>Expand the root node and select <strong>samples/javaee/entappclient</strong>. Click OK.</li>
<li>Specify the Local Folder for the sources (the local folder must be empty).</li>
<li>Click Finish.
<p>When you click Finish, the IDE initializes the local folder as a Subversion repository
and checks out the project sources.</p>
</li>
<li>Click Open Project in the dialog that appears when checkout is complete.</li>
</ol>
<p class="notes"><strong>Notes.</strong></p>
<ul>
<li>Steps for checking out sources from Kenai only apply to NetBeans IDE 6.7 and 6.8.</li>
<li>You need a Subversion client to checkout the sources from Kenai.
For more about installing Subversion, see the section on <a href="../ide/subversion.html#settingUp">Setting up Subversion</a> in the <a href="../ide/subversion.html">Guide to Subversion in NetBeans IDE</a>.</li>
</ul>
</li>
</ul>-->
<div class="feedback-box"><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Creating%20an%20Application%20Client">Envie-nos Seu Feedback</a></div>
<br style="clear: both;">
<!-- ======================================================================================= -->
<h2><a name="nextsteps"></a>Próximas Etapas</h2>
<!--<p>For more, see the following tutorial </p>
<ul>
<li><a href="http://wiki.netbeans.org/wiki/view/RemoteApplicationClientInNetBeans">RemoteApplicationClientInNetBeans</a></li>
</ul>-->
<p>Para obter mais informações sobre o uso do NetBeans IDE para desenvolver aplicações Java EE, consulte os seguintes recursos: </p>
<ul>
<li><a href="javaee-intro.html">Introdução à Tecnologia Java EE</a></li>
<li><a href="javaee-gettingstarted.html">Conceitos Básicos sobre Aplicações do Java EE</a></li>
<li><a href="../../trails/java-ee.html">Trilha de Aprendizado do Java EE e Java Web</a></li>
</ul>
<p>Você pode encontrar mais informações sobre o uso do EJB Enterprise Beans no <a href="http://download.oracle.com/javaee/6/tutorial/doc/">Tutorial do Java EE 6</a>.</p>
<p>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, <a href="../../../community/lists/top.html">inscreva-se na lista de correspondência de nbj2ee</a>.</p>
<!-- End Content Area -->
</body>
</html>