22. Anexos
Aqui explicamos como instalar as ferramentas utilizadas neste documento em máquinas com Windows 7 ou 8. As capturas de ecrã mostram geralmente as versões de 64 bits dos SGBDs e das ferramentas instaladas. O leitor deve adaptar-se ao seu próprio ambiente.
22.1. Instalação de um JDK
O JDK mais recente pode ser encontrado no URL [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (outubro de 2014). Doravante, referir-nos-emos ao diretório de instalação do JDK como <jdk-install>.
![]() |
22.2. Instalação do Maven
O Maven é uma ferramenta para gerir dependências num projeto Java e muito mais. Está disponível (em outubro de 2014) no URL [http://maven.apache.org/download.cgi].
![]() |
Descarregue e descompacte o arquivo. Iremos referir-nos à pasta de instalação do Maven como <maven-install>.
![]() |
- Em [1], o ficheiro [conf/settings.xml] configura o Maven;
Contém 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 padrão na linha 4 pode causar problemas para alguns softwares que utilizam o Maven se, tal como eu, o seu caminho {user.home} contiver um espaço (por exemplo, [C:\Users\Serge Tahé]). Iremos especificar (linha 7) uma pasta diferente 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 utilizar um caminho que contenha espaços.
22.3. Instalação do STS (Spring Tool Suite)
Iremos instalar o SpringSource Tool Suite [http://www.springsource.com/developer/sts] (outubro de 2014), um ambiente Eclipse pré-configurado com vários plugins relacionados com o framework Spring e com uma configuração do 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 diretórios [3A] [3B]. Em [4], executamos o ficheiro executável,
- em [5], a janela do espaço de trabalho do IDE após fechar a janela de boas-vindas. Em [6], exibe a janela dos servidores de aplicações,
![]() |
- em [7], a janela dos servidores. Um servidor está registado. Trata-se de um servidor VMware compatível com Tomcat.
Deve especificar o diretório de instalação do Maven ao STS:
![]() |
- em [1-2], configure o STS;
- em [3-4], adicione uma nova instalação do Maven;
![]() |
- em [5], especifique o diretório de instalação do Maven;
- em [6], conclua o assistente;
- em [7], defina a nova instalação do Maven como a instalação predefinida;
![]() |
- Em [8-9], verifique o repositório local do Maven, a pasta onde serão armazenadas as dependências descarregadas e onde o STS colocará os artefactos compilados;
Deve também selecionar um JDK (Java Development Kit) para executar os projetos Eclipse com e sem o Maven [1-5].
![]() |
Em [4], pode adicionar JDKs (Java Development Kits) ou JREs (Java Runtime Environments). O JRE pode executar ficheiros .class, mas não consegue compilar ficheiros .java para os produzir. O JDK consegue fazer ambas as coisas. Deve escolher um JDK porque certas operações do Maven requerem um.
Para criar um projeto Eclipse, proceda da seguinte forma:
![]() |
- Em [3], atribua um nome ao projeto;
- em [4], selecione uma pasta existente e vazia;
![]() |
- em [5], o projeto é criado;
- nos passos [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. Dentro de um projeto, não pode haver dois pacotes com o mesmo nome. Portanto, não pode utilizar um nome de pacote que já exista numa das dependências do projeto. Uma empresa utilizará um nome de pacote que especifique a empresa, o projeto e as suas várias ramificações;
![]() |
- em [9], atribua um nome ao pacote;
- em [10], o pacote criado;
![]() |
- em [11-13], crie uma classe dentro do pacote que foi criado;
![]() |
- em [14], nomeie a classe (deve seguir a convenção CamelCase — cada palavra no nome deve começar com uma letra maiúscula seguida de letras minúsculas);
- em [15], verifique o pacote;
- em [16], assinale a caixa. Isto 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 o seguinte código no método [main], que exibe 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]:
![]() |
Ao importar um projeto Eclipse, este pode conter erros. Isto pode dever-se a uma configuração incorreta do projeto. Para corrigir o erro (se houver), proceda da seguinte forma:
![]() |
- Em [1], modifique o [Build Path] do projeto;
![]() |
- Em [2], o projeto está configurado para utilizar uma JVM 1.5;
- Em [3], remova esta dependência;
- em [4], adicione uma nova dependência;
![]() |
- em [5], adicione uma JVM;
- Em [6], selecione a JVM para a máquina;
Depois de fazer isso, guarde as alterações e vá para a propriedade [Compilador Java] do projeto [7]:
![]() |
- em [8], configure o compilador para aceitar todas as funcionalidades da linguagem Java até à versão 1.7 (ou 1.8), inclusive;
- Em [9], clique em OK;
- Em [10], o projeto reconfigurado já não deverá conter quaisquer erros;
Além disso, o projeto importado pode utilizar a 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 [http://netbeans.org/downloads/].
![]() |
Pode descarregar a versão Java SE (Standard Edition) a partir do link acima.
22.5. Instalação do plugin [Advanced Rest Client] para o Chrome
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]. Eis como o fazer:
- Aceda à [Google Web Store] (https://chrome.google.com/webstore) utilizando o navegador Chrome;
- Procure a aplicação [Advanced Rest Client]:
![]() |
- A aplicação fica então disponível para download:
![]() |
- Para o obter, terá de criar uma conta Google. A [Google Web Store] irá então solicitar uma confirmação [1]:
![]() |
- Em [2], a extensão adicionada está disponível na opção [Aplicações] [3]. Esta opção aparece em cada nova guia que criar (CTRL-T) no navegador.
22.6. Manipulação de JSON em Java
De uma forma trans parente para o programador, o framework [Spring MVC] utiliza a biblioteca JSON [Jackson]. Para ilustrar o que é JSON (JavaScript Object Notation), apresentamos aqui um programa que serializa objetos em JSON e faz o inverso, deserializando as cadeias de caracteres JSON geradas para recriar os objetos originais.
A biblioteca «Jackson» permite-lhe 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 uma IOException. Aqui está 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 importa a biblioteca «Jackson»;
A classe [Person] é a seguinte:
package istia.st.json;
public class Personne {
// data
private String nom;
private String prenom;
private int age;
// manufacturers
public Personne() {
}
public Personne(String nom, String prénom, int âge) {
this.nom = nom;
this.prenom = prénom;
this.age = âge;
}
// signature
public String toString() {
return String.format("Personne[%s, %s, %d]", nom, prenom, age);
}
// getters and 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 {
// the serialization / deserialization tool
static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws IOException {
// creation of a person
Personne paul = new Personne("Denis", "Paul", 40);
// display jSON
String json = mapper.writeValueAsString(paul);
System.out.println("Json=" + json);
// person instantiation from Json
Personne p = mapper.readValue(json, Personne.class);
// person display
System.out.println("Personne=" + p);
// a picture
Personne virginie = new Personne("Radot", "Virginie", 20);
Personne[] personnes = new Personne[]{paul, virginie};
// json display
json = mapper.writeValueAsString(personnes);
System.out.println("Json personnes=" + json);
// dictionary
Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
hpersonnes.put("1", paul);
hpersonnes.put("2", virginie);
// json display
json = mapper.writeValueAsString(hpersonnes);
System.out.println("Json hpersonnes=" + json);
}
}
A execução desta classe produz a seguinte saída no ecrã:
Pontos-chave do exemplo:
- o objeto [ObjectMapper] necessário para as transformações JSON/Object: linha 11;
- a transformação [Person] --> JSON: linha 17;
- a transformação de JSON para [Person]: linha 20;
- a [IOException] lançada por ambos os métodos: linha 13.
22.7. Instalação do [WampServer]
O [WampServer] é um pacote de software para desenvolvimento em PHP / MySQL / Apache numa máquina Windows. Iremos utilizá-lo exclusivamente para o SGBD MySQL.
![]() |
- No site do [WampServer] [1], escolha a versão adequada [2],
- o executável descarregado é um instalador. São solicitadas várias informações durante a instalação. Estas não dizem respeito ao MySQL, pelo que podem ser ignoradas. A janela [3] aparece no final da instalação. Inicie o [WampServer],
![]() |
- em [4], o ícone [WampServer] aparece na barra de tarefas, no canto inferior direito do ecrã [4],
- ao clicar nele, aparece o menu [5]. Este permite-lhe gerir o servidor Apache e o SGBD MySQL. Para gerir este último, utilize a opção [PhpMyAdmin],
- que abre a janela apresentada abaixo,

Forneceremos alguns detalhes sobre a utilização do [PhpMyAdmin]. Na secção 6.4.2, mostramos como utilizá-lo para criar uma base de dados a partir de um script SQL.






























