// 
//     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.
//

= Desenvolvendo uma Aplicação Corporativa para o Oracle WebLogic Server
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Desenvolvendo uma Aplicação Corporativa para o Oracle WebLogic Server - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Desenvolvendo uma Aplicação Corporativa para o Oracle WebLogic Server

Este tutorial demonstra como usar o IDE para criar uma aplicação Web que usa JSF (JavaServer Faces) 2.x e a JPA (Java Persistence API) 2.0 e, em seguida, como implantar a aplicação no Oracle WebLogic Server. Neste tutorial você registrará o Servidor WebLogic com o IDE e, em seguida, usará os assistentes no IDE para criar um recurso JDBC e as classes da entidade e do bean. Em seguida, você usará o IDE para implantar a aplicação ao servidor e registrará a nova origem de dados.


image::images/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"]


*Para seguir este tutorial, são necessários os recursos e o software a seguir.*

|===
|Software ou Recurso |Versão Necessária 

|link:/downloads/[+NetBeans IDE+] |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 6 ou 7 

|link:http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html[+Oracle WebLogic Server+] |11g Rel 1 (10.3.4, 10.3.5), 12c (12.1.1.0) 

|banco de dados de amostra |MySQL ou JavaDB 
|===

*Observações.*

* Este projeto usa o banco de dados * ``sample`` * que está disponível para os servidores de banco de dados MySQL e JavaDB. Para obter mais detalhes sobre como usar um servidor de banco de dados MySQL com o IDE e criar uma conexão com o banco de dados, consulte o tutorial link:../ide/mysql.html[+Conectando a um Banco de Dados MySQL+]. Como alternativa, você pode usar a conexão do banco de dados para o banco de dados  ``sample``  do JavaDB que foi registrado com o IDE por default, se você instalou o GlassFish Server durante a instalação do IDE.


== Registrando o Oracle WebLogic Server

Neste tutorial, você implantará uma aplicação Web no Oracle WebLogic Server. Para implantar aplicações no WebLogic Server a partir do IDE, será preciso registrar uma instância do servidor com o IDE. Esta seção descreve como usar o assistente Adicionar Instância de Servidor no IDE para registrar uma instância do WebLogic Server.


=== Download e Instalação do Servidor

Para que você possa registrar o servidor, será necessário fazer download do instalador do WebLogic Server e seguir as etapas descritas no link:http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14142/toc.htm[+guia de instalação do Oracle WebLogic Server+] para instalar o servidor em sua máquina local. Além de instalar o servidor, será necessário criar um domínio WebLogic antes de registrar o servidor com o IDE.

1. Faça download do instalador da página link:http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html[+Downloads do Oracle WebLogic Server+].
2. Instale o servidor seguindo as etapas do link:http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14142/toc.htm[+guia de instalação do Oracle WebLogic Server+].

Lembre-se de anotar o nome de usuário e a senha.

3. Crie um domínio do WebLogic.

Você pode usar o link:http://download.oracle.com/docs/cd/E17904_01/web.1111/e14140/newdom.htm#i1073602[+Modo Gráfico do Assistente de Configuração do WebLogic+] para ajudá-lo a criar o domínio.

Consulte as seções a seguir do Guia de Instalação do WebLogic Server para obter detalhes sobre a instalação e a definição do servidor.

* link:http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14142/prepare.htm[+Preparando para a Instalação+]
* link:http://download.oracle.com/docs/cd/E17904_01/web.1111/e14140/intro.htm[+Introdução aos Domínios do WebLogic+]
* link:http://download.oracle.com/docs/cd/E17904_01/web.1111/e14140/newdom.htm[+Criando um domínio do WebLogic+]
 


=== Registrando o Servidor no IDE

Depois de instalar o servidor, é possível usar o assistente Adicionar Instância de Servidor para registrar uma instância do servidor especificando o domínio do servidor.

1. Abra a janela Serviços.
2. Clique com o botão direito do mouse no nó Servidores e selecione Adicionar Servidor.
3. Selecione Oracle WebLogic Server. Clique em Próximo.
4. Clique em Procurar e localize o diretório de instalação do servidor. Clique em Próximo.

O IDE automaticamente identificará o domínio da instância do servidor.

5. Digite o nome de usuário e a senha do domínio.
6. Ativar JPA 2.0 (Somente Servidor WebLogic 10.3.4 ou 10.3.5). Clique em Finalizar.

*Observação.* Se estiver registrando uma instância do Servidor WebLogic 12c (12.1.1.0) você precisará ativar o JPA 2.0 porque JPA 2.0 é ativado por default. Se você estiver registrando uma instância do WebLogic Server 11g Rel 1 (10.3.4 ou 10.3.5), você poderá ativar o JPA 2.0 ao registrar o servidor ou no Gerenciador de servidores depois que o servidor estiver registrado. Consulte a seção <<01e,Ativando Suporte para JPA 2.0 no Oracle WebLogic Server 11g>> abaixo para obter mais detalhes.

image::images/add-weblogic-server2.png[title="Assistente Adicionar Servidor"]

Quando você clica em Finalizar, o Oracle WebLogic Server será exibido sob o nó Servidores na janela Serviços.

Você pode clicar com o botão direito do mouse no nó do Oracle WebLogic Server e executar várias ações, incluindo:

* Iniciar e Parar o Servidor
* Abrir a Console de Administração no seu browser
* Exibir o Log do Servidor na janela de Saída do IDE
image::images/weblogic-services-window1.png[title="WebLogic Server na janela Serviços"]  


=== Abrindo a Console de Administração

Neste exercício você abrirá a Console de Administração para o WebLogic Server no browser. A Console de Administração permite configurar das definições do servidor e exibir aplicações implantadas e recursos disponíveis.

1. Inicie o servidor clicando com o botão direito do mouse no nó do Oracle WebLogic Server na janela Serviços e selecione Iniciar.

Quando o servidor é iniciado, é possível ver o log do servidor na guia Oracle WebLogic Server da janela de Saída.

Caso a guia não esteja visível, você poderá clicar com o botão direito do mouse no nó do Oracle WebLogic Server e selecionar Exibir Log do Servidor.

2. Clique com o botão direito do mouse no nó do Oracle WebLogic Server e selecione Exibir Console de Administração.

Quando você escolhe Exibir Console Admin, a tela de log-in do servidor é aberta no browser.

3. Faça log-in com o nome de usuário e a senha especificados na instalação o servidor.

Após o log-in, você verá a Home Page da Console de Administração no seu browser.

image::images/admin-console1.png[title="Console de Administração do Oracle WebLogic Server"]


=== Ativando Suporte para JPA 2.0 no Oracle WebLogic Server 11g 

Se você estiver usando o Oracle WebLogic Server 11g (10.3.4 ou 10.3.5), será necessário ativar o suporte para a JPA 2.0 (Java Persistence API) e definir o provedor de persistência default para TopLink. O Oracle WebLogic Server 11g é um contêiner Java EE 5 e é compatível com o JPA 1.0 e JPA 2.0. O JPA 1.0 é ativado por default ao instalar o Oracle WebLogic Server 10.3.4 e 10.3.5, mas a instalação do WebLogic Server inclui os arquivos necessários para suportar o JPA 2.0. Você pode ativar o JPA 2.0 para o WebLogic Server ao registrar a instância do servidor ou no Gerenciador de servidores do IDE. Como alternativa, é possível seguir as etapas da seção link:http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#EJBAD1309[+Usando o JPA 2.0 com TopLink no WebLogic Server+] da documentação do WebLogic Server.

O WebLogic Server suporta a JPA (Java Persistence API) e vem com as bibliotecas de persistência Oracle TopLink e Kodo. Neste exercício ,você alterará o provedor de persistência default do Kodo para o Oracle TopLink na Console de Administração do WebLogic Server.

*Observação.* O suporte ao TopLink e ao JPA 2.0 é ativado por default ao instalar o WebLogic Server 12c.

Para ativar o suporte à JPA 2.0 no Gerenciador de servidores e definir o provedor de persistência default, execute as etapas a seguir.

1. Clique com o botão direito do mouse no nó do Oracle WebLogic Server na janela Serviços e selecione Propriedades para abrir o Gerenciador de servidores.

Ou então, selecione Ferramentas > Servidores no menu principal para abrir o Gerenciador de servidores.

image::images/weblogic-properties-enablejpa.png[title="Guia Domínio do Gerenciador de servidores"]

A guia Domínio do Gerenciador de servidores permite que você exiba e modifique o nome de usuário e a senha.

2. Clique em Ativar JPA 2. Clique em Fechar.

Quando você clicar em Ativar JPA 2, o IDE modificará o classpath do WebLogic Server para adicionar os arquivos e ativar o suporte ao JPA 2.

*Observação.* Você também pode ativar o JPA 2.0 utilizando o Oracle Smart Update ou modificando manualmente o classpath do WebLogic. Para obter mais detalhes sobre como ativar o suporte ao JPA 2.0, consulte os links a seguir.

* link:http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#EJBAD1309[+Usando o JPA 2.0 com o TopLink no WebLogic Server+]
* link:http://forums.oracle.com/forums/thread.jspa?threadID=1112476[+Fórum de Discussão OTN: 11g Release 1 Conjunto de Patches 3 (WLS 10.3.4)+]
* link:http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/weblogic[+Executando a API do JPA 2.0 no WebLogic 10.3+]
3. Abra a Console de Administração do Oracle WebLogic Server no seu browser e efetue log-in.
4. Clique em *Domínio* na seção Configurações de Domínio da Console de Administração.
5. Clique na guia *JPA* na guia Configuração.
6. Selecione *TopLink* na lista drop-down Provedor JPA Default. Clique em Salvar.
image::images/admin-console-jpa.png[title="guia JPA na Console de Administração do Oracle WebLogic Server"]

Quando você clica em Salvar, o Oracle TopLink se tornará o provedor de persistência default para aplicações implantadas no servidor quando nenhum provedor de persistência for explicitamente especificado pela aplicação.

*Observação.* A aplicação deste tutorial utilizará a JTA (Java Transaction API) para gerenciar as transações. A JTA é ativada por default quando o WebLogic é instalado. É possível modificar as definições da JTA na guia JTA da guia Configuração do domínio.


== Criando a Aplicação Web

Neste tutorial, você criará uma aplicação Web Java EE. A aplicação Web conterá classes de entidade baseadas no banco de dados de amostra. Após criar a conexão com o banco de dados, você criará uma unidade de persistência e usará o assistente no IDE para gerar classes de entidade a partir do banco de dados. Em seguida, use um assistente para criar páginas JSF com base nas classes de entidade.


=== Criando o Projeto

Neste exercício, você usará o assistente de Novo Projeto para criar uma aplicação Web e especificar o Oracle WebLogic Server como servidor de destino.

1. Selecione Arquivo > Novo Projeto (Ctrl-Shift-N; &amp;#8984-Shift-N no Mac).
2. Na categoria Java Web, selecione Aplicação Web. Clique em Próximo.
3. Digite *WebLogicCustomer* para o nome do projeto e especifique a localização do projeto.
4. Desmarque a opção Usar Pasta Dedicada, se ela estiver selecionada. Clique em Próximo.
5. Selecione *Oracle WebLogic Server* na lista drop-down Servidor.
6. Selecione *Java EE 5* ou *Java EE 6 Web* como a Versão Java EE. Clique em Próximo.

*Observação.* Java EE 6 Web só está disponível se você registrou uma instância do WebLogic Server 12c.

image::images/new-project-ee6.png[title="WebLogic selecionado no Assistente de Novo Projeto"]
7. Selecione o framework JavaServer Faces.
8. Selecione JSF 2.x na lista drop-down Biblioteca do Servidor. Clique em Finalizar.
image::images/projectwizard-serverlib.png[title="Painel Frameworks do assistente de Novo Projeto"]

Quando você clicar em Finalizar, o IDE criará o projeto da aplicação Web e abrirá o  ``index.xhtml``  no editor. Na janela Projetos você pode ver se o IDE criou o arquivo do descritor  ``weblogic.xml``  e  ``web.xml``  no nó Arquivos de Configuração.

image::images/wl-projects-window1.png[title="weblogic.xml selecionado na janela Projetos"]

Se você abrir  ``web.xml``  no editor, você poderá ver que  ``faces/index.xhtml``  foi especificado como a página de índice default. Se você abrir o arquivo  ``weblogic.xml``  no editor, o arquivo se parecerá com o seguinte.


[source,xml]
----

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
  <jsp-descriptor>
    <keepgenerated>true</keepgenerated>
    <debug>true</debug>
  </jsp-descriptor>
  <context-root>/WebLogicCustomer</context-root>
</weblogic-web-app>
----

*Observações.*

* Se o arquivo  ``weblogic.xml``  contiver o elemento  ``<fast-swap>`` , confirme se  ``fast-swap``  está desativado, confirmando se o valor do elemento  ``<enabled>``  é *falso*.

[source,xml]
----

    <fast-swap>
        <enabled>*false*</enabled>
    </fast-swap>
----
* Se o servidor de destino for WebLogic Server 11g (10.3.4 ou 10.3.5), a instalação do servidor incluirá as bibliotecas necessárias para usar JSF 1.2 e JSF 2.x nas aplicações, mas elas serão desativadas por default. É necessário implantar e instalar as bibliotecas JSF 2.x antes de utilizá-las. Se a biblioteca ainda não estiver instalada, o IDE solicitará a instalação da mesma, caso você selecione a biblioteca no assistente de Novo Projeto. A biblioteca precisa ser instalada uma única vez.
image::images/install-libraries-dialog.png[title="Caixa de diálogo Resolver Problema de Biblioteca do Servidor não Encontrada"]

Após criar a aplicação, quando você exibir o arquivo  ``weblogic.xml``  do descritor, você verá que o IDE modificou o arquivo para especificar a biblioteca JSF que será utilizada com a aplicação.


[source,xml]
----

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
  <context-root>/WebLogicCustomer</context-root>
  *<library-ref>
      <library-name>jsf</library-name>
      <specification-version>2.0</specification-version>
      <implementation-version>1.0.0.0_2-0-2</implementation-version>
      <exact-match>true</exact-match>
  </library-ref>*
</weblogic-web-app>
----
 


=== Criando a Conexão de Banco de Dados

Este tutorial utiliza um banco de dados chamado *sample* e é executado no servidor de banco de dados MySQL. Neste exercício, você usará o IDE para criar o banco de dados e preencher as tabelas do banco de dados. Em seguida, você abrirá uma conexão de banco de dados para o mesmo. O IDE utilizará os detalhes da conexão do banco de dados para criar a unidade de persistência para a aplicação. Para obter mais detalhes sobre como usar um servidor de banco de dados MySQL com o IDE, consulte o tutorial link:../ide/mysql.html[+Conectando a um Banco de Dados MySQL+].

*Observação.* Ou então, se você tiver instalado o GlassFish Server ao instalar o IDE, você poderá utilizar a conexão de banco de dados ao banco de dados de amostra do servidor de banco de dados do JavaDB registrado automaticamente durante a instalação do IDE.

Neste exercício, você criará e abrirá uma conexão para o banco de dados.

1. Clique com o botão direito do mouse no nó do Servidor MySQL na janela Serviços e selecione Conectar.
2. Digite o nome de usuário e a senha. Clique em OK.
3. Clique com o botão direito do mouse no nó Servidor MySQL e escolha Criar Banco de Dados.
4. Selecione *sample* na lista drop-down Novo Nome do Banco de Dados. Clique em OK.
image::images/create-db.png[title="Caixa de diálogo Criar Banco de Dados"]

*Observação.* Dependendo de como você tiver configurado o seu banco de dados, pode ser necessário especificar explicitamente as permissões de acesso para o novo banco de dados.

Quando você clicar em OK, o IDE criará o banco de dados de amostra e preencherá as tabelas do banco de dados. Se você expandir o nó do servidor MySQL, você verá que a lista de bancos de dados agora contém o novo banco de dados  ``sample`` .

5. Expanda o nó do servidor MySQL e clique com o botão direito do mouse no banco de dados de amostra e selecione Conectar.

Quando você clicar em Conectar, um nó de conexão de banco de dados para o banco de dados aparecerá sob o nó Bancos de Dados. É possível expandir o nó para exibir as tabelas do banco de dados.

image::images/services-window2.png[title="Nó do banco de dados de amostra na janela Serviços"]

O IDE usa a conexão de banco de dados para se conectar ao banco de dados e recuperar os detalhes do mesmo. O IDE também utiliza os detalhes da conexão de banco de dados para gerar o arquivo XML que o WebLogic Server utiliza para criar as fontes de dados no servidor e identificar os drivers apropriados.

Se você não tiver um banco de dados MySQL instalado, você poderá utilizar o banco de dados  ``sample``  em execução no JavaDB. Caso o banco de dados  ``sample``  não exista, você poderá clicar com o botão direito do mouse no nó MySQL (ou JavaDB) e selecionar Criar Banco de Dados.

Para obter mais detalhes, consulte o tutorial link:../ide/mysql.html[+Conectando a um Banco de Dados MySQL+].

 


=== Criando a Unidade de Persistência

Para gerenciar a persistência na aplicação, é necessário apenas criar uma unidade de persistência, especificar quais fonte de dados e gerenciador de entidade serão utilizados e permitir que o contêiner realize o trabalho de gerenciamento de entidades e persistência. Você criará uma unidade de persistência ao defini-la em  ``persistence.xml`` .

*Observação.* Para fins de demonstração, neste exercício você utilizará o assistente de Nova Unidade de Persistência para criar o arquivo  ``persistence.xml`` . O assistente o ajudará a especificar as propriedades da unidade de persistência. Você também pode criar uma unidade de persistência no assistente de Nova Classe de Entidade a Partir do Banco de Dados. Caso não haja unidades de persistência, o assistente fornecerá a opção de criar uma unidade de persistência para o projeto. O assistente criará uma unidade de persistência que utilizará o provedor de persistência default do WebLogic Server.

1. Clique com o botão direito do mouse no nó do projeto na janela Projetos e escolha Propriedades.
2. Na categoria Códigos-Fonte da janela Propriedades, selecione *JDK 6* como o Formato Binário/Código-Fonte. Clique em OK.
3. Selecione Novo Arquivo (Ctrl-N; &amp;#8984-N no Mac) para abrir o assistente para Novo Arquivo.
4. Selecione Unidade de Persistência na categoria Persistência. Clique em Próximo.
5. Mantenha o nome default para a unidade de persistência sugerido pelo assistente.
6. Selecione *EclipseLink* na lista drop-down Provedor de Persistência.
7. Selecione Nova Fonte de Dados na lista drop-down Fonte de Dados.
8. Digite *jdbc/mysql-sample* para o nome do JNDI na caixa de diálogo Nova Fonte de Dados.
9. Selecione a conexão do banco de dados de amostra MySQL. Clique em OK para fechar a caixa de diálogo.
10. Clique em Finalizar no assistente de Nova Unidade de Persistência.
image::images/new-persistence-eclipselink1.png[title="Assistente Nova Unidade de Persistência"]

Quando você clicar em Finalizar, o arquivo  ``persistence.xml``  será criado para o seu projeto e aberto no editor. Você pode clicar em Código-fonte na barra de ferramentas do editor para abrir  ``persistence.xml``  no editor do código-fonte de XML. Esse arquivo contém todas as informações que o servidor precisa para gerenciar as entidades e a persistência da aplicação.

*Observação.* Se você não estiver utilizando una fonte de dados, o IDE irá gerar um arquivo XML sob o nó Recursos do Servidor (por exemplo,  ``datasource-1-jdbc.xml`` ) que contenha os detalhes utilizados para criar a fonte de dados no servidor, incluindo o driver JDBC do banco de dados.

Se o arquivo  ``persistence.xml``  for aberto no editor de código-fonte XML, você verá que o IDE especificou a versão da persistência como 2.0 e o esquema como  ``persistence_2_0.xsd`` . O IDE especifica  ``org.eclipse.persistence.jpa.PersistenceProvider``  como o provedor de persistência em  ``persistence.xml`` . O EclipseLink é a implementação de persistência principal para o Oracle TopLink e a implementação de referência da JPA.


[source,xml]
----

<?xml version="1.0" encoding="UTF-8"?>
<persistence *version="2.0"* xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/*persistence_2_0.xsd*">
  <persistence-unit name="WebLogicCustomerPU" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/mysql-sample</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="eclipselink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
</persistence>
----

Também é possível selecionar o TopLink no assistente, nesse caso, o assistente especificará  ``oracle.toplink.essentials.PersistenceProvider``  como o provedor de persistência em  ``persistence.xml`` . O IDE adicionará as bibliotecas do Oracle TopLink Essentials - 2.0.1 ao classpath. Nas versões atuais e futuras do Oracle TopLink, o Oracle TopLink Essentials serão substituídos pelo EclipseLink. Onde for possível, você deverá optar por usar o Oracle TopLink/EclipseLink em vez do Oracle TopLink Essentials.

 


=== Criando as Classes de Entidade

Agora, você usará o assistente de Classes de Entidade do Banco de Dados para criar as classes de entidade com base no banco de dados relacional.

1. Selecione Novo Arquivo (Ctrl-N) para abrir o assistente de Novo Arquivo.
2. Selecione Classes de entidade do Banco de Dados na categoria Persistência. Clique em Próximo.
3. No assistente de Classes de Entidade do Banco de Dados, selecione *jdbc/mysql-sample* na lista drop-down Fonte de Dados e forneça a senha, se necessário.
4. Selecione a tabela *Customer* nas Tabelas Disponíveis e clique em Adicionar. Clique em Próximo.

O assistente lista a tabela  ``customer``  e as tabelas relacionadas em Tabelas Selecionadas.

5. Digite *ejb* como o pacote para as classes geradas. Clique em Finalizar.

Quando você clicar em Finalizar, o IDE gerará as classes de entidade para cada tabela selecionada. É possível expandir o nó do pacote de código-fonte  ``ejb``  para exibir as classes de entidade geradas.

 


=== Gerando Páginas JSF

Neste exercício, você usará um assistente para gerar páginas JSF com base nas classes de entidade existentes.

1. Clique com o botão direito do mouse no nó do projeto e selecione Novo > Outro.
2. Selecione Páginas JSF em Classes de Entidade na categoria JavaServer Faces do assistente de Novo Arquivo. Clique em Próximo.
3. Clique em Adicionar Tudo para criar páginas JSF para todas as entidades disponíveis. Clique em Próximo.
4. Digite *web* para o pacote de beans da sessão e para classes do controlador JPA. Clique em Finalizar.

Quando você clicar em Finalizar, o IDE gerará páginas JSF 2.0 e as classes do controlador e do conversor para as páginas JSF. O IDE gera um conjunto de páginas JSF para cada classe de entidade no diretório de Páginas Web default. O IDE também gera uma classe de bean gerenciado para cada entidade que acessa a classe de fachada da sessão correspondente para a entidade.

 


=== Executando o Projeto

Neste exercício, você criará e implantará a aplicação Web no WebLogic Server. Você utilizará o comando Executar no IDE para criar, implantar e iniciar a aplicação.

1. Clique com o botão direito do mouse no nó do projeto e selecione Executar.

Quando você clicar em Executar, o IDE criará o projeto e implantará o arquivo compactado WAR no WebLogic Server e criará e registrará a nova fonte de dados JDBC. A página de boas-vindas da aplicação (link:http://localhost:7001/WebLogicCustomer/[+http://localhost:7001/WebLogicCustomer/+]) será aberta no seu browser.

image::images/browser-welcome.png[title="Página de boas-vindas no browser"]

Se você fizer log-in na Console de Administração, você poderá clicar em Implantações na seção Seus Recursos Implantados para ver uma tabela com os recursos atualmente implantados no servidor.

image::images/adminconsole-deployments.png[title="Tabela de Implantações na Console de Administração do WebLogic Server"]

Você pode clicar no nome de cada recurso para exibir detalhes adicionais sobre o mesmo. Também é possível deletar recursos na tabela Implantações.

*Observações sobre como implantar o Servidor WebLogic 10.3.4 ou 10.3.5.*

* Se você implantou a aplicação ao Servidor WebLogic 10.3.4 ou 10.3.5 você pode ver na tabela que a biblioteca JSF 2.0 também foi implantada para o servidor, além da aplicação web  ``WebLogicCustomer.war``  e a configuração  ``jdbc/mysql-sample``  de JDBC. 
image::images/admin-console-deployments.png[title="Tabela de Implantações na Console de Administração do WebLogic Server"]
* Se você expandir a instância do Oracle WebLogic Server na janela Serviços, será possível exibir os aplicações e os recursos implantados no servidor. Observe que os recursos JDBC foram criados no servidor e que as bibliotecas JSF estão instaladas.
image::images/weblogic-services-window2.png[title="Aplicações e recursos do WebLogic Server na janela Serviços"]

Para obter mais informações sobre a implantação de aplicações, consulte link:http://download.oracle.com/docs/cd/E12840_01/wls/docs103/deployment/index.html[+Implantando aplicações no WebLogic Server+]

link:/about/contact_form.html?to=3&subject=Feedback:%20Developing%20an%20Enterprise%20Application%20on%20Oracle%20WebLogic[+Enviar Feedback neste Tutorial+]



== Consulte Também

Para obter mais informações sobre o uso do NetBeans IDE para desenvolver aplicações Web usando Persistência Java e JavaServer Faces, consulte os seguintes recursos:

* link:../javaee/weblogic-javaee-m1-screencast.html[+Vídeo sobre a Implantação de uma Aplicação Web no Oracle WebLogic Server+]
* link:jsf20-intro.html[+Introdução ao JavaServer Faces 2.0+]
* link:../../docs/javaee/ecommerce/intro.html[+Tutorial de E-commerce do NetBeans+]
* link:../../trails/java-ee.html[+Trilha de Aprendizado do Java EE e Java Web+]
