Finalizando a instalação do WildFly

wildfly-final

Com servidor de aplicação instalado e funcionando falta dar alguma utilidade para ele, ou seja, fazê-lo se conectar com alguma base de dados. Isto se faz em duas etapas: a primeira adicionando suporte ao Java para se conectar com o banco de dados e a outra configurando e disponibilizando esta conexão para que as aplicações tenham acesso a ele.

Até pensei em instalar o MongoDB aqui mas ainda não estou assim tão íntimo no mundo NoSQL para experimentações então o jeito é ficar no bom e (literalmente) velho banco de dados relacional (por enquanto), que é o que as aplicações esperam encontrar.

MariaDB 5.5

O MariaDB é um fork do projeto do MySQL e teve origem após a aquisição pela Oracle da Sun Microsystems — que se tornara dona do MySQL ao adquirir a MySQL AB um ano antes. Confuso, não?

Mas voltando ao assunto, instalar o SGBD:

# yum update && yum install mariadb-5.5

Diferente do que acontece nas distribuições baseadas em Debian, na família Red Hat não se é obrigado a definir uma senha para o usuário “root” logo na instalação, então, hora de colocar uma:

$ mysqladmin --user=root -password
New password:
Confirm new password:

Apenas para verificar se está tudo certo com o banco, um teste bem idiota:

$ mysql --user=root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.
...
MariaDB [(none)]> select 2+2;
+-----+
| 2+2 |
+-----+
|   4 |
+-----+
1 row in set (0.00 sec)

Usar “show databases” seria muito previsível.  😈

Um detalhe, como isto aqui é apenas um teste deixei o servidor de aplicação e de banco de dados no mesmo host, na vida real é recomendável que ambos fiquem separados para não se “atrapalharem” mutuamente.

Pós instalação, o retorno

Assim como aconteceu na primeira parte, hora de fazer ajustes.

Baixando o driver JDBC do MariaDB

Para que o Java consiga se conectar ao MariaDB é necessário utilizar um driver JDBC, felizmente os desenvolvedores do banco de dados tendo consciência disto,  fizeram um e o disponibilizaram para download. Mas para baixá-lo você precisa se registrar, porém há uma via alternativa: compilar a partir do código fonte.

Instalando o Maven

O Maven é uma ferramenta para automatizar a montagem e empacotamento de programas, foi originalmente criado para projetos escritos em Java mas hoje já possui suporte para outras linguagens de programação.

Como agora será necessário gerar código em bytecode de Java, instale a parte necess[aria do OpenJDK:

$ sudo yum install java-1.8.0-openjdk-devel

Baixe a última versão do Maven e faça:

$ cd /usr/local/share
$ sudo tar zxvf /LOCAL/DO/ARQUIVO/apache-maven-X.Y.Z-bin.tar.gz
$ sudo ln -s apache-maven-X.Y.Z apache-maven
$ cd ../bin
$ sudo ln -s ../share/apache-maven/bin/mvn
$ sudo ln -s ../share/apache-maven/bin/mvnDebug
$ sudo ln -s ../share/apache-maven/bin/mnnyjp

Apenas lembrando que “/LOCAL/DO/ARQUIVO” é onde ele foi baixado e, claro, “X”, “Y” e “Z” são os dígitos referentes ao número de versão do programa (atualmente ele está na versão 3.3.3).

Mas porque eu preferi baixar o Maven se ele está empacotado no RHEL/CentOS? Simples, ao resolver as dependências para instalar a versão empacotada em RPM do programa eu iria instalar um monte de outras coisas, inclusive, Tomcat (base do WildFly) e uma versão antiga JBoss AS. Exatamente, as vezes a versão empacotada não é a melhor solução.

Compilando o driver JDBC

Comece clonando o repositório do projeto:

$ sudo yum install git
$ cd /usr/local/src
$ sudo git clone https://github.com/MariaDB/mariadb-connector-j.git

Dentro diretório faça:

$ cd mariadb-conector-j
$ sudo mvn -Dmaven.test.skip=true package

O parâmetro -Dmaven.test.skip=true serve para que ele não execute os procedimentos de teste de conexão ao banco. Motivo? Ele espera um usuário “root” sem senha e assim todos os testes falharão.

Pressione «Enter» e vá tomar um, café — não pela compilação em si, mas pelos downloads que o Maven ainda fará.

Nos pacotes do RHEL/CentOS também há um driver JDBC do MySQL que funcionaria no MariaDB porém ele tem o mesmo problema das dependências do Maven.

Quando terminado, dentro de “./target” estará nosso driver, o arquivo “mariadb-java-client-1.2.1-SNAPSHOT.jar”, copie-o para seu computador.

A estrutura com Maven e a cópia do repositório do driver pode ser utilizadas posteriormente para gerar eventuais novas versões deste driver, compilação de outros drivers ou mesmo de aplicações ou outros módulos.

Configurando o WildFly

Com tudo pronto, agora vem a parte mais “fácil” (acredite!), tanto que vou usar capturas de tela para ilustrar.

Instalando o driver JDBC

A primeira coisa é instalar (aquilo que em javanês é chamado de “deploy”) o driver JDBC, então acesse o console de administração do WildFly:

wildfly_1_deploy

E vá para a opção “Deployments” do menu principal e clique em “Add”:

wildfly_2_deploy

Em “Add Deployments” escolha “Upload a new deployment” e clique em “Next»” (o botão azul escrito “Ne…”):

wildfly_3_deploy

Selecione o arquivo com o driver JDBC do MariaDB (lembre-se que pedi para copiar o arquivo para seu computador, havia uma razão):

wildfly_4_deploy

Verifique o que será instalado, aproveitei para remover o texto “SNAPSHOT” de “Runtime name” e habilitar — o padrão é de novas aplicações ficarem desabilitadas após a instalação. Daí clique em “Finish” (o botão azul escrito “Fin…”):

wildfly_5_deploy

E pronto, driver instalado!

wildfly_6_deploy

Configurando o datasource

De volta à tela inicial do console de administração use os atalhos de “Common Tasks→Create a datasource”:

wildfly_7_ds

Clique em “View” para visualizar os datasources configurados:

wildfly_8_ds

Na tela de “JDBC Datasources” clique em “Add” para adicionar um novo:

wildfly_9_ds

Tanto o WildFly quanto o JBoss EAP tem este ExampleDS pré-configurado que se conecta a uma base de dados do H2 (um banco de dados escrito em Java) mas, como diz a documentação dos dois servidores de aplicação: serve para  fazer testes e não para usar em ambiente de produção.

Um detalhe, esta opção não te desobriga de instalar os drivers JDBC respectivos para cada base de dados, são apenas perfis. Selecione “Custom” e prossiga:

wildfly_10_ds

Primeiro passo, defina o nome para a conexão — «MariaDB» — e seu JNDI — «java:/mariadbDS» — e prossiga:

wildfly_11_ds

Por padrão o JNDI sempre começa com java:/ e por convenção os datasources são terminados com DS.

Segundo passo, vá para a aba “Detected Driver”, escolha o driver recém instalado «mariadb-java-client-1.2.1.jar» e prossiga:

wildfly_12_ds

Agora a parte mais complicada, já que estas opções variam para cada banco de dados e em driver JDBC (é importante ler a documentação para saber o que deve-se fazer aqui).

Último passo, defina a URL — «jdbc:maridadb://127.0.0.1/mysql» — o usuário — «root» — e a senha — que não é *****! — os parâmetros da conexão:

wildfly_13_ds

Explicando rapidamente a configuração, vou conectar via JDBC em um banco de dados MariaDB no host 127.0.0.1  e acessar a base de dados mysql (é a base que guarda as tabelas de usuários, permissões etc, lembre-se que é um teste e aqui deve ser usado o banco definido pela aplicação).

E antes de clicar em “Done”, só para ter certeza de que tudo está funcionando, teste a conexão:

wildfly_14_ds

E pronto! O servidor de aplicações está pronto para uso.

wildfly_15_ds

Concluindo

Em tese o trabalho acaba aqui mas ainda falta uma tarefa a ser feita. Em três meses ninguém se lembrará do quê, onde e como as coisas foram instaladas, ou seja, falta a documentação da intalação.

Mas se alguém pedir, eu mostro como montá-la  🙂

Anúncios

4 comentários sobre “Finalizando a instalação do WildFly

  1. Pingback: Finalizando a instalação do WildFly - Peguei do

  2. Parabéns!!! vi que você comentou sobre como documentar a instalção, você utiliza algum documento padrão para essa tarefa?

    Curtir

    • Tem de ser curto, senão ninguém o lerá 🙂 Basicamente o roteiro é identificar onde a instalação foi realizada (“equipamento X, modelo Y dentro no rack Z”, “máquina virtual A criada em B” etc), a versão do sistema operacional, parâmetros específicos da instalação que podem ser úteis lembrar/saber no futuro (placas de rede, endereços IP, leiaute dos discos etc), principais ajustes de pós-instalação (contas de usuário e permissões, regras de firewall, pacotes adicionais etc) e aí a instalação dos serviços específicos (origem, versão, local de instalação e forma de acesso). Se for um relatório preliminar acrescente também eventuais pendências (subir a aplicação, popular a base de dados etc).

      Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s