| <!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 > Subversion > 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&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> |