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

= Executando Aplicações Web no Oracle Cloud
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Executando Aplicações Web no Oracle Cloud - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Executando Aplicações Web no Oracle Cloud

O Oracle Cloud é uma nuvem corporativa para empresas. O Oracle Cloud oferece aplicações de negócios de autosserviço entregues em um desenvolvimento integrado e plataforma de implantação com ferramentas para estender e criar rapidamente novos serviços. Para obter mais informações sobre o Oracle Cloud, consulte a link:https://cloud.oracle.com[+página inicial do Oracle Cloud+].

Este documento mostra como registrar o Oracle Cloud com o NetBeans IDE e algumas funcionalidades do Oracle Cloud suportadas no IDE. Este documento discute algumas das vantagens e desvantagens de trabalhar completamente na Nuvem em comparação ao trabalho em um servidor local para depois fazer implantações na Nuvem. No final, você criará uma aplicação Web simples, seguindo as instruções de link:quickstart-webapps.html[+Introdução a Aplicações Web+] e a executará no Oracle Cloud.

Você também pode consultar a série de tutoriais do link:https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans[+Oracle Cloud Development with NetBeans and Eclipse (OEPE)+] no blog do Java Training Beat.


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, os recursos e softwares a seguir são necessários.*

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

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Versão 7.3, 7.4, 8.0 do Java EE 

|Plug-in do Oracle Cloud |disponível no Centro de Atualização NetBeans via Gerenciador de Plug-ins do NetBeans 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 7 ou versão 8 

|Oracle Java Cloud Service |Inscreva-se na link:http://cloudcentral.c9dev.oraclecorp.com/mycloud/f?p=SERVICE:free_trial:0[+página inicial de Disponibilidade Pública do Oracle Cloud+] 

|Oracle Java Cloud Service SDK |Faça download da link:http://cloud.oracle.com[+página inicial do Oracle Cloud+]. 

|link:http://www.oracle.com/technetwork/middleware/weblogic/overview/index.html[+Servidor Oracle WebLogic+] 
(para desenvolvimento e teste de aplicações localmente)

 |
Versão indicada no Oracle Java Cloud Service Users Guide
Este documento está disponível na guia Recursos > Documentação link:https://cloudeap.oracle.com/mycloud/f?p=service:home:0[+no serviço Java Cloud ativado+]. 

|link:http://www.oracle.com/technetwork/products/express-edition/downloads/index.html[+Servidor de banco de dados OracleXE+] 
(para desenvolvimento e teste de aplicações localmente) |11g 
|===


[[sdk-download]]
== Fazendo Download do Oracle Java Cloud Service SDK

Você precisa de uma cópia local do Oracle Java Cloud Service SDK para desenvolver aplicações Web no Oracle Cloud. Você pode fazer download do Oracle Java Cloud Service SDK na link:http://cloud.oracle.com[+página inicial do Oracle Cloud+].

*Para fazer download do Oracle Java Cloud Service SDK:*

1. Aponte uma janela do browser para a link:http://cloud.oracle.com[+página inicial do Oracle Cloud+].
2. Expanda a lista drop-down *Recursos* no menu principal e clique em *Downloads*.
3. Clique em *Fazer download do Oracle Cloud Java Service SDK* na seção Oracle Java Cloud Service SDK.
4. Na página de download do Oracle Java Cloud Service SDK, leia e aceite o Contrato de Licença do OTN para ativar o link de download.
5. Faça download e extraia o SDK no seu sistema local.


[[install-plugin]]
== Instalar o Plug-in do Oracle Cloud

Para ativar o suporte para o Oracle Java Cloud Service no IDE, você precisa instalar o plug-in do Oracle Cloud do Centro de Atualizações NetBeans. É possível usar o gerenciador de Plug-ins do NetBeans para instalar o plug-in do Oracle Cloud.

Execute as etapas a seguir para instalar o plug-in do Oracle Cloud.

1. Escolha Ferramentas > Plug-ins no menu principal para abrir o gerenciador de Plug-ins.
2. Selecione a guia Plug-ins Disponíveis no gerenciador de Plug-ins
3. Localize e marque a caixa de seleção do plug-in Oracle Cloud. Clique em Instalar.

Quando você clicar em Instalar, o IDE abrirá o Instalador do NetBeans IDE. Você deve concluir as etapas do assistente do instalador para instalar o plug-in.

Depois que você instalar o plug-in do Oracle Cloud, o assistente Adicionar Provedor de Nuvem exibirá o Oracle Cloud na lista de provedores de nuvem suportados.


== Registrando o Oracle Cloud no IDE

É necessário registrar o Oracle Cloud na janela Serviços do IDE antes de usá-lo. Observe que você precisa de uma instalação separada do Oracle Java Cloud Service SDK.

*Observação.* Para trabalhar com o Oracle Cloud no NetBeans IDE, você precisa ter uma conta no Oracle Cloud.

*Para registrar o Oracle Cloud no IDE, execute as etapas a seguir.*

1. Abra a janela Serviços no IDE (Janela > Serviços ou Ctrl-5).
2. Clique com o botão direito do mouse no nó Nuvem e selecione Adicionar Nuvem para abrir o assistente Adicionar Provedor de Nuvem
image::images/add-cloud.png[]
3. No campo Escolher Nuvem, selecione Oracle Cloud e clique em Próximo para abrir o painel Oracle Cloud. 
image::images/oracle-cloud1.png[]
4. Preencha todos os campos. Procure a pasta contendo o Oracle Java Cloud Service SDK JAR. Clique em Próximo.

Quando você clica em Próximo, o IDE testa a conexão com a nuvem. Uma lista de serviços de Nuvem é exibida caso a conexão seja bem-sucedida. Só o servidor Oracle Cloud Remote (Oracle WebLogic) está disponível no momento.

*Observação:* depois de registrar um provedor Oracle Cloud, você pode alterar os detalhes da Nuvem nas respectivas Propriedades. Abra a caixa de diálogo Propriedades clicando com o botão direito do mouse em Oracle Cloud e selecionando Propriedades.

5. Confirme se o provedor Oracle Cloud é exibido na lista de recursos de Nuvem. Clique em Finalizar.

O Oracle Cloud agora está listado no nó Nuvem da janela Serviços. Você pode clicar com o botão direito do mouse no nó Oracle Cloud para abrir um menu de contexto que oferece comandos para atualizar a lista de serviços, abrindo uma lista de jobs e logs, removendo a instância da nuvem ou exibindo as propriedades da nuvem.

image::images/cloud-contextmenu.png[]

Quando você registrar o Oracle Cloud no IDE, uma instância do servidor Oracle Cloud Remote também será exibido no nó Servidores. (Se ele não aparecer, clique com o botão direito do mouse no nó Oracle Cloud e selecione Atualizar).

image::images/registered-cloud-and-server.png[]

Você pode expandir o nó Oracle Cloud Remoto para exibir uma lista de aplicações implantadas no servidor remoto.


== Exibindo Jobs e Logs

Todas as solicitações que o NetBeans IDE envia ao Oracle Cloud resultam em um job. Todos os jobs têm um status (enviado, em execução, falha, concluído) e podem ter um ou mais arquivos de log (log de verificação da lista de permissões, log de verificação do antivírus, log de implantação). Você pode exibir jobs recentes e seus logs com a ação Exibir Jobs e Logs.

Clique com o botão direito do mouse no nó Oracle Cloud e selecione Exibir Jobs e Logs. Na janela do editor, é exibida uma lista dos últimos 50 jobs e logs. Leva um momento para carregar. A lista de jobs não é atualizada automaticamente. Clique em Atualizar para atualizar a lista.

image::images/jobs-n-logs.png[]


== Servidor Oracle Cloud Remote

O servidor Oracle Cloud Remote é uma instância do Oracle WebLogic em execução no Oracle Cloud. Expanda o nó Oracle Cloud Remote e consulte uma lista de aplicações em execução nesse servidor. É possível clicar com o botão direito do mouse em uma aplicação para abrir o menu pop-up que contém comandos para iniciar, interromper e anular a implantação da aplicação. Você pode clicar em Exibir no menu para abrir as página inicial da aplicação em um browser.

image::images/webapp-contextmenu.png[]

Para atualizar a lista de aplicações implantadas, clique com o botão direito do mouse no nó Oracle Cloud Remote e selecione Atualizar.

image::images/server-contextmenu.png[]

 


== Desenvolvendo Aplicações em uma Máquina Local

Recomendamos o desenvolvimento da aplicação em uma máquina local e sua reimplantação na Nuvem periodicamente. Embora seja possível desenvolver uma aplicação Web inteiramente no Oracle Cloud, o desenvolvimento local é preferível pelos seguintes motivos:

* A implantação local leva segundos em um servidor em execução. A implantação na Nuvem pode levar minutos.
* A implantação incremental só fica disponível localmente.
* A depuração só fica disponível localmente.

No entanto, também há riscos no desenvolvimento local e na implantação no Oracle Cloud. As aplicações desenvolvidas localmente podem não ser executadas no servidor Oracle Cloud Remote. Por motivos de segurança, desenvolva localmente em um servidor Oracle WebLogic 11g, que tem o mesmo servidor que o Oracle Cloud Remote.

É necessário alterar manualmente o servidor da aplicação Web entre o servidor local e o servidor do Oracle Cloud. Não existe forma automática de desenvolver localmente e implantar na Nuvem periodicamente.

*Para alterar um servidor de aplicação Web entre local e o Oracle Cloud:*

1. Na janela Projetos, clique com o botão direito do mouse no nó da aplicação e selecione Propriedades.
image::images/project-contextmenu.png[]
2. Nas Propriedades do Projeto, selecione a categoria Executar.
image::images/run-properties.png[]
3. Na lista drop-down Servidor, selecione o servidor que você deseja (o Oracle Cloud Remote ou Oracle WebLogic local). O servidor deve estar registrado no IDE. É possível adicionar um servidor clicando com o botão direito do mouse na janela Serviços.


== Criando uma Aplicação Web

Vá para link:quickstart-webapps.html[+Introdução ao Desenvolvimento de Aplicações Web+] e conclua este tutorial. Desenvolva a aplicação Web em um servidor Oracle WebLogic local. Depois que a aplicação for concluída, altere o servidor para o Oracle Cloud Remote e execute a aplicação.

*Observação.* Você deve instalar o Oracle WebLogic Server localmente e registrar o servidor com o IDE. Consulte link:https://netbeans.org/kb/docs/javaee/weblogic-javaee-m1-screencast.html[+Vídeo de Implantação de uma Aplicação Web no Oracle WebLogicServer+] para obter mais informações.

Antes de implantar a aplicação no servidor Oracle Cloud Remote, abra a janela de Saída (Janela > Saída > Saída ou Ctrl-4). Observe a guia Implantação do Oracle Cloud Remote na janela de saída. Esta guia mostra o andamento da implantação.

image::images/output-cloud-tab.png[]


[[crud]]
== Criando uma Aplicação CRUD com JSF

O NetBeans IDE e o Oracle Cloud podem ser usados em casos em que você tem um back-end de banco de dados Oracle gerenciado por uma aplicação Web hospedada pelo servidor Oracle WebLogic. O NetBeans IDE permite criar classes de entidade para um banco de dados Oracle existente e criar páginas do JSF (JavaServer Faces) para as classes de entidade resultantes. Este cenário exige instalações no local do servidor de banco de dados OracleXE e servidor de aplicação Oracle WebLogic.

*Importante: *O servidor Oracle Cloud Remote WebLogic não suporta PA 2.0. Se seus servidores WebLogic do local estiverem ativados para JPA 2.0, desative o JPA 2.0 ou use um provedor de persistência do JPA 1.0 para aplicações CRUD.

*Observação: *Este documento fornece apenas direções rápidas para a criação de classes de entidade e páginas de JSF. Para obter um tratamento detalhado, consulte link:jsf20crud.html[+Gerando uma Aplicação JavaServer Faces 2.0 CRUD de um Banco de Dados+].

*Para criar uma Aplicação CRUD com JSF:*

1. Ative o esquema de RH de amostra no servidor do banco de dados Oracle XE e registre o esquema no NetBeans IDE. Para obter detalhes, consulte link:../ide/oracle-db.html[+Conectando um Oracle Database do NetBeans IDE+].

Use o nome de usuário e a senha de RH quando você se registrar no esquema RH com o NetBeans IDE.

2. Crie uma Aplicação Web Java usando o Java EE5 e sua instalação do servidor WebLogic local. Ative o framework JSF para a aplicação.
image::images/crudapp-eevers.png[]
image::images/crudapp-jsf.png[]
3. Na janela Projetos, clique com o botão direito do mouse no nó de root do projeto e selecione Novo > Classes de Entidade do Banco de Dados. As Classes de Entidade do assistente do Banco de Dados são abertas.
4. Em Classes de Entidade do assistente do Banco de Dados, selecione Nova Fonte de Dados na caixa drop-down Fonte de Dados. A caixa de diálogo Criar Fonte de Dados é aberta.
image::images/crudapp-newdatasource.png[]
5. Nomeie essa origem de dados para corresponder ao nome do serviço de banco de dados na sua conta Oracle Cloud registrada..
image::images/cloud-db-name.png[]
6. Selecione a conexão do banco de dados do OracleXE HR criada na Etapa 1. Clique em OK. A caixa de diálogo Criar Fonte de Dados é fechada.
image::images/create-datasource.png[]
7. Em Classes da Entidade do assistente de Banco de Dados, o campo Tabelas Disponíveis é preenchido com os nomes de tabela do esquema de RH. Selecione uma ou mais tabelas, como EMPLOYEES, e clique em Adicionar. Clique no restante do assistente, dando um nome arbitrário ao pacote contendo as classes da entidade e aceitando todos os valores default em outros campos.
8. Na janela Projetos, clique com o botão direito do mouse no nó de root do projeto e selecione Novo > Páginas JSF das Classes de Entidade. O Assistente de Novas Páginas JSF de Classes de Entidade é aberto.
9. No painel Classes de Entidade, clique em Selecionar Tudo e clique em Próximo.
10. No painel Gerar Páginas e Classes JSF, dê os nomes apropriados aos pacotes e à pasta de arquivos JSF e clique em Finalizar.
11. Na janela Projetos, clique com o botão direito do mouse no nó root do projeto e selecione Executar. O IDE cria o projeto e o implanta no local, no servidor WebLogic. Um browser é aberto na página inicial do projeto.

Agora, você tem uma versão local de uma aplicação Web Java usando CRUD e JSF. É possível testar e ajustar a aplicação localmente. Quando a aplicação estiver em estado final, implante-a no Oracle Cloud.

*Implantando a Aplicação CRUD/JSF no Oracle Cloud*

1. Na janela Projetos, clique com o botão direito do mouse no nó root do projeto e selecione Propriedades.
2. Selecione a categoria Executar na janela Propriedades. Nessa categoria, expanda a lista drop-down Servidor e selecione Oracle Cloud Remote. Clique em OK.
image::images/crudapp-properties.png[]
3. Na janela Projetos, expanda o nó Arquivos de Configuração do projeto e clique duas vezes em ` persistence.xml`. O arquivo é aberto na view Design do Editor XML.
4. Em Estratégia de Geração de Tabela, selecione Criar 
image::images/crudapp-persistence.png[]
5. Se seu servidor WebLogic local tiver o JPA 2.0 ativado, você deverá alterar o provedor de persistência do EclipseLink default, que usa JPA 2.0, para um provedor JPA 1.0, como OpenJPA.

*Observação: *Se o seu servidor WebLogic local não estiver ativado para JPA 2.0, o EclipseLink fará o fallback para o JPA 1.0. Nesse caso, não é necessário para alterar provedores de persistência.

6. Na janela Projetos, clique com o botão direito do mouse no nó root do projeto e selecione Executar. O IDE compila o projeto e o implanta no servidor Oracle Cloud Remote. Você pode seguir o andamento da implantação na janela de Saída do IDE, na guia Implantação do Oracle Cloud Remote.

*Cuidado: *O Oracle Cloud ainda não suporta o upload de tabelas no banco de dados. Portanto, nenhum dado está disponível para sua aplicação quando ela estiver no Oracle Cloud.


== Testando Suporte à Lista de Permissão

O Oracle Cloud não suporta métodos de API de Java padrão, como  ``System.exit()`` . A _lista de permissão_ do Oracle Cloud define todos os métodos permitidos. Durante a implantação de uma aplicação no Oracle Cloud, o servidor Cloud testa a conformidade da lista de permissão. Se a lista de permissões for violada, o servidor Nuvem recusará a implantação da aplicação.

O NetBeans IDE ajuda a impedir erros relacionados a listas de permissão, notificando as violações de lista de permissões durante a codificação. O recurso autocompletar código é limitado pela lista de permissão, e as violações de lista de permissão são realçadas no código. Execute a ação Verificar em uma aplicação Web implantada no servidor Oracle Cloud Remote e a janela de Saída mostrará as violações de lista de permissão.

*Para testar a lista de permissão:*

1. Na janela Projetos, clique com o botão direito do mouse na<<create-webapp,aplicação web criada>> e selecione Novo > Servlet. O assistente Novo Servlet será aberto.
image::images/new-servlet.png[]
2. Dê um nome arbitrário ao servlet, selecione um pacote existente para ele e clique em Concluir. A classe do servlet será aberta no editor.
3. Localize o método  ``processRequest`` , digite  ``System.ex``  no corpo do método e pressione Ctrl+Space para abrir o recurso autocompletar código. O recurso autocompletar código não oferece a possibilidade de completar o  ``System.exit``  , pois o  ``System.exit``  não está permitido na lista de permissões do Oracle Cloud. O IDE mostra  ``exit``  com uma linha.
image::images/cc-failure.png[]
4. Finalize digitando  ``System.exit(1);`` . Uma advertência será exibida. Role o cursor pelo ícone de advertência e uma dica de ferramenta será exibida, informando que o  ``java.lang.System.exit``  não é permitido
image::images/whitelist-warning.png[]
5. Na janela Projetos, clique com o botão direito do mouse no nó da aplicação e selecione Verificar. Abra a janela de Saída (Janela > Saída > Saída ou Ctrl-4). A janela de Saída inclui uma guia Lista de Permissões que mostra erros devido a restrições da lista de restrições.
image::images/whitelist-output.png[]
6. Abra a janela Itens de Ação (Janela > Itens de Ação ou Ctrl-6). As violações de lista de permissão aparecem como um grupo separado de itens de ação.

*Dica:* Ative os Itens de Ação de Grupo por Categoria (botão inferior à esquerda) para ver as violações de lista de permissão mais facilmente.

image::images/whitelist-tasks.png[]
7. Tente implantar o projeto. Uma caixa de diálogo de advertência é exibida, informando que foram detectadas violações da lista de permissões e perguntando se você quer continuar com a implantação. Clique em Não. A caixa de diálogo desaparecerá.
8. 
Na janela Projetos, clique com o botão direito do mouse no nó da aplicação e selecione Propriedades. As Propriedades do Projeto da aplicação serão abertas. Selecione a categoria das Listas de Permissão. Uma lista ativa de listas de permissão é exibida. Nessa caixa de diálogo, é possível desativar a lista de permissões.

Quando um servidor da aplicação da Web é definido como Oracle Cloud Remote, a lista de permissões do Oracle Cloud se aplica ao projeto e a qualquer subprojeto desse projeto. Por exemplo, uma aplicação Corporativa definida para execução no Oracle Cloud Remote tem a lista de permissões do Oracle Cloud aplicada à aplicação Corporativa e a quaisquer módulos EJB ou aplicações Web que sejam parte da aplicação Corporativa. Tanto o projeto quanto seus subprojetos têm uma categoria Lista de Permissão em suas Propriedades do Projeto. É possível usar a caixa de diálogo Propriedades do Projeto pra definir listas de permissões para o projeto e seus subprojetos específicos.

image::images/whitelist-properties.png[]
link:/about/contact_form.html?to=3&subject=Feedback:%20Running%20Web%20Apps%20on%20Oracle%20Cloud[+Envie-nos Seu Feedback+]

 



== Consulte Também

Para obter informações sobre os serviços do Oracle Cloud, consulte os recursos a seguir:

* link:https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans[+Oracle Cloud Development with NetBeans and Eclipse (OEPE)+] (blog do Java Training Beat)
* link:https://cloud.oracle.com/mycloud/f?p=service:home:0[+Página Inicial do Oracle Cloud+]

Para obter informações relacionadas sobre o desenvolvimento de aplicações Web no NetBeans IDE, consulte os seguintes recursos:

* link:../../trails/java-ee.html[+Trilha de Aprendizado do Java EE e Java Web+]
