Skip to content

22. Anexos

Apresentamos aqui como instalar as ferramentas utilizadas neste documento em computadores com Windows 7 ou 8. As capturas de ecrã referem-se geralmente às versões de 64 bits do SGBD e das ferramentas instaladas. O leitor deverá adaptar-se ao seu próprio ambiente.

22.1. Instalação de um JDK

Encontrar-se-á no URL o [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (outubro de 2014), sendo o JDK a versão mais recente. A partir de agora, designaremos por <jdk-install> a pasta de instalação do JDK.

 

22.2. Instalação do Maven

O Maven é uma ferramenta de gestão de dependências de um projeto Java e muito mais. Está disponível (outubro de 2014) no URL [http://maven.apache.org/download.cgi].

 

Descarregue e descompacte o arquivo. Chamaremos <maven-install> à pasta de instalação do Maven.

  • No [1], o ficheiro [conf / settings.xml] configura o Maven;

Nele encontram-se as seguintes linhas:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
-->

O valor predefinido da linha 4 pode causar problemas a alguns programas que utilizam o Maven, se, tal como no meu caso, o seu {user.home} tiver um espaço no seu caminho (por exemplo, [C:\Users\Serge Tahé]). Vamos indicar (linha 7) outra pasta para o repositório local do Maven:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>

Na linha 7, evite um caminho que contenha espaços.

22.3. Instalação do STS (Spring Tool Suite)

Vamos instalar o SpringSource Tool Suite [http://www.springsource.com/developer/sts] (outubro de 2014), um Eclipse pré-equipado com vários plugins relacionados com o framework Spring e também com uma configuração Maven pré-instalada.

  • aceda ao site do SpringSource Tool Suite (STS) [1], para descarregar a versão atual do STS [2A] [2B],
  • o ficheiro descarregado é um instalador que cria a estrutura de ficheiros [3A] [3B]. No [4], executa-se o executável,
  • em [5], a janela de trabalho do IDE após fechar a janela de boas-vindas. Em [6], é exibida a janela dos servidores de aplicações,
  • em [7], a janela dos servidores. Está registado um servidor. Trata-se de um servidor VMware compatível com o Tomcat.

É necessário indicar ao STS a pasta de instalação do Maven:

  • no [1-2], configura-se o STS;
  • no [3-4], adiciona-se uma nova instalação do Maven;
  • em [5], indica-se a pasta de instalação do Maven;
  • no [6], conclui-se o assistente;
  • em [7], define-se a nova instalação do Maven como a instalação predefinida;
  • em [8-9], verifica-se o repositório local do Maven, a pasta onde serão colocadas as dependências que serão descarregadas e onde STS colocará os artefactos que serão construídos;

É também necessário selecionar um JDK (Java Development Kit) para executar tanto os projetos Eclipse sem como com o Maven [1-5].

Com o [4], é possível adicionar o JDK (Java Development Kit) ou o JRE (Java Runtime Environment). Este último consegue executar ficheiros .class, mas não consegue compilar os ficheiros .java para os produzir. O JDK consegue fazer ambas as coisas. Escolher-se-á um JDK porque certas operações do Maven requerem um JDK.

Para criar um projeto Eclipse, deve-se proceder da seguinte forma:

  • em [3], atribua um nome ao projeto;
  • em [4], selecione uma pasta existente e vazia;
  • em [5], o projeto criado;
  • em [5-8], crie um pacote. Um pacote é uma pasta que contém código Java. Duas classes podem ter o mesmo nome se pertencerem a pacotes diferentes. Num projeto, não pode haver dois pacotes com o mesmo nome. Assim, não é possível utilizar um nome de pacote que já exista numa das dependências do projeto. Uma empresa utilizará como nome de pacote um nome que especifique a empresa, o projeto e as diferentes ramificações do mesmo;
  • em [9], atribua um nome ao pacote;
  • em [10], o pacote criado;
  • em [11-13], cria-se uma classe no pacote que foi criado;
  • em [14], atribua um nome à classe (deve respeitar a norma CamelCase — cada palavra do nome deve começar por uma letra maiúscula seguida de letras minúsculas);
  • em [15], verifique o pacote;
  • em [16], assinale a caixa de seleção. Esta solicita que o método estático [main] seja gerado. Este método torna uma classe executável, ou seja, a primeira classe a ser executada num projeto;
  • em [17], a classe assim criada;

Digite no método [main] o seguinte código, que apresenta um texto na consola:


package st.istia;

public class Test01 {

    public static void main(String[] args) {
        System.out.println("test01");
    }

}
  • em [18-20], execute a classe. O seu método [main] será então executado;
  • em [21-22], o resultado da aplicação;

Se a vista [Console] não estiver presente, proceda da seguinte forma [1-4]:

É possível que, ao importar um projeto Eclipse, este apresente erros. Tal pode dever-se a uma configuração incorreta do projeto. Para corrigir o erro (caso exista), proceda da seguinte forma:

  • no [1], altere o [Build Path] do projeto;
  • para [2], o projeto está configurado para utilizar um JVM 1.5;
  • para [3], elimine esta dependência;
  • em [4], adicione uma nova dependência;
  • no [5], adiciona-se um JVM;
  • no [6], selecione o JVM do item;

Feito isto, valida-se tudo e passa-se para a propriedade [Java compiler] do projeto [7]:

  • em [8], solicita-se ao compilador que aceite todas as características da linguagem Java até à versão 1.7 (ou 1.8), inclusive;
  • em [9], valida-se;
  • em [10], o projeto assim reconfigurado já não deve apresentar erros;

Além disso, o projeto importado pode utilizar uma codificação de caracteres UTF-8. Siga estes passos para definir esta codificação no projeto importado [1-4]:

Além disso, pode ser útil desativar a verificação ortográfica no projeto para evitar que os comentários em francês sejam sublinhados como incorretos. Siga os passos [1-4] abaixo:

22.4. Instalação do IDE NetBeans

O NetBeans está disponível em URL [http://netbeans.org/downloads/].

 

Pode-se utilizar a versão Java SE (Standard Edition) acima referida.

22.5. Instalação do plugin do Chrome [Advanced Rest Client]

Neste documento, utilizamos o navegador Chrome da Google (http://www.google.fr/intl/fr/chrome/browser/). Iremos adicionar-lhe a extensão [Advanced Rest Client]. Pode proceder da seguinte forma:

 
  • a aplicação fica então disponível para download:
  • para a obter, terá de criar uma conta Google. A aplicação [Google Web Store] solicita, em seguida, a confirmação [1]:
  • Em [2], a extensão adicionada está disponível na opção [Applications] [3]. Esta opção é apresentada em cada novo separador que criar (CTRL-T) no navegador.

22.6. Gestão do jSON em Java

De forma tra nsparente para o programador, o framework [Spring MVC] utiliza a biblioteca jSON [Jackson]. Para ilustrar o que é o jSON (JavaScript Object Notation), apresentamos aqui um programa que serializa objetos em jSON e faz o inverso, deserializando as cadeias jSON produzidas para recriar os objetos iniciais.

A biblioteca «Jackson» permite construir:

  • a cadeia jSON de um objeto: new ObjectMapper().writeValueAsString(object);
  • um objeto a partir de uma cadeia jSON: new ObjectMapper().readValue(jsonString, Object.class).

Ambos os métodos podem lançar um IOException. Eis um exemplo.

O projeto acima é um projeto Maven com o seguinte ficheiro [pom.xml];


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>istia.st.pam</groupId>
  <artifactId>json</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.3.3</version>
    </dependency>
  </dependencies>
</project>
  • linhas 12-16: a dependência que inclui a biblioteca «Jackson»;

A classe [Personne] é a seguinte:


package istia.st.json;

public class Personne {
    // dados
    private String nom;
    private String prenom;
    private int age;

    // construtores
    public Personne() {

    }

    public Personne(String nom, String prénom, int âge) {
        this.nom = nom;
        this.prenom = prénom;
        this.age = âge;
    }

    // assinatura
    public String toString() {
        return String.format("Personne[%s, %s, %d]", nom, prenom, age);
    }

    // getters e setters
...
}

A classe [Main] é a seguinte:


package istia.st.json;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Main {
  // a ferramenta de serialização/deserialização
  static ObjectMapper mapper = new ObjectMapper();

  public static void main(String[] args) throws IOException {
    // criação de uma pessoa
    Personne paul = new Personne("Denis", "Paul", 40);
    // exibição jSON
    String json = mapper.writeValueAsString(paul);
    System.out.println("Json=" + json);
    // instanciação de Pessoa a partir do JSON
    Personne p = mapper.readValue(json, Personne.class);
    // exibição de pessoa
    System.out.println("Personne=" + p);
    // uma tabela
    Personne virginie = new Personne("Radot", "Virginie", 20);
    Personne[] personnes = new Personne[]{paul, virginie};
    // exibição de JSON
    json = mapper.writeValueAsString(personnes);
    System.out.println("Json personnes=" + json);
    // dicionário
    Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
    hpersonnes.put("1", paul);
    hpersonnes.put("2", virginie);
    // exibição de JSON
    json = mapper.writeValueAsString(hpersonnes);
    System.out.println("Json hpersonnes=" + json);
  }
}

A execução desta classe produz a seguinte saída no ecrã:

1
2
3
4
Json={"nom":"Denis","prenom":"Paul","age":40}
Personne=Personne[Denis, Paul, 40]
Json personnes=[{"nom":"Denis","prenom":"Paul","age":40},{"nom":"Radot","prenom":"Virginie","age":20}]
Json hpersonnes={"2":{"nom":"Radot","prenom":"Virginie","age":20},"1":{"nom":"Denis","prenom":"Paul","age":40}}

Do exemplo, destaca-se:

  • o objeto [ObjectMapper] necessário para as transformações jSON / Objeto: linha 11;
  • a transformação [Personne] --> jSON: linha 17;
  • a transformação jSON --> [Personne]: linha 20;
  • a exceção [IOException] lançada pelos dois métodos: linha 13.

22.7. Instalação do [WampServer]

O [WampServer] é , um conjunto de software para desenvolver em PHP / MySQL / Apache numa máquina Windows. Iremos utilizá-lo exclusivamente para o SGBD e o MySQL.

  • no site do [WampServer] [1], escolha a versão adequada [2],
  • o ficheiro executável descarregado é um programa de instalação. São solicitadas várias informações durante a instalação. Estas não dizem respeito ao MySQL. Por isso, podem ser ignoradas. A janela [3] é apresentada no final da instalação. Inicie o [WampServer],
  • no [4], o ícone do [WampServer] é instalado na barra de tarefas, na parte inferior direita do ecrã [4],
  • ao clicar nele, é exibido o menu [5]. Este permite gerir o servidor Apache e o SGBD MySQL. Para gerir este último, utiliza-se a opção [PhpPmyAdmin],
  • aparece então a janela abaixo,

Image

Não entraremos em muitos detalhes sobre a utilização do [PhpMyAdmin]. No parágrafo 6.4.2, mostramos como utilizá-lo para criar uma base de dados a partir de um script SQL.