fev 21 2016

Iniciando com Java em aplicações Web – Iniciando e parando o Tomcat

Category: Inicio,Servidores Java,TomcatEdson Gonçalves @ 18:17

A variação para iniciar o Tomcat nos sistemas operacionais está no arquivo de script de prompt de comandos no Windows, o arquivo de terminação “.bat” (leia-se batch) e de terminação “.sh”, no Linux/Unix/Mac OS, o chamado arquivo de shell script bash.

Iniciando o Tomcat

Ao iniciar o servidor Java Apache Tomcat, ele enviará ao Prompt de Comando, ou Terminal, informações de saída, indicando que o servidor está sendo iniciado.

Figura 1 – Iniciando o Tomcat pelo Terminal do Mac OS X

Figura 1 – Iniciando o Tomcat pelo Terminal do Mac OS X

No Windows

Para iniciar no Windows, devemos executar  o arquivo batch chamado startup.bat, encontrado no diretório bin localizado na instalação do Tomcat.

Para rodar o Apache Tomcat, iremos usar o prompt de comando, executando a seguinte linha:

%CATALINA_HOME%\bin\startup.bat

No Linux/Mac OS X

Para o Linux e Mac OS X (Unix), iniciaremos através do arquivo de script bash mostrado a seguir:

$CATALINA_HOME/bin/startup.sh

Entretanto, como qualquer programação de terminal Linux/Mac OSX, precisamos dar a permissão de execução – do contrário é apenas um arquivo de texto.

A permissão de execução neste caso será o 700, feito no terminal nos seguintes arquivos:

chmod 0700 $CATALINA_HOME/bin/startup.sh

chmod 0700 $CATALINA_HOME/bin/catalina.sh

Visualizando o Tomcat no Navegador

Para visualizar o Apache Tomcat em operação, vá até o seu navegador Web preferido e coloque o seguinte endereço:

http://localhost:8080

Observe que o Tomcat executa com uma terminação numérica 8080, após o nome “localhost:”. Isso indica que o Apache Tomcat está operando em uma porta diferente da que estamos acostumados a visualizar em navegadores web – o padrão é a porta 80.

Ao surgir a página padrão do Apache Tomcat significa que fez tudo correto, ou seja, você configurou e executou o serviço sem erros.

Figura 2 – Apache Tomcat executando no navegador

Figura 2 – Apache Tomcat executando no navegador

Parando o Tomcat

Parar o Tomcat também exige a chamada de um script batch no Windows ou bash no Linux/Mac OSX. Os comandos a seguir devem ser executados no mesmo local que usamos para iniciar o Tomcat.

No Windows

Parar o Apache Tomcat no Windows é fácil como iniciar, onde devemos executar  o arquivo batch chamado shutdown.bat, encontrado no diretório bin, localizado na instalação do Tomcat.

No prompt de comando, execute a seguinte linha para finalizar a execução do processo do Tomcat:

%CATALINA_HOME%\bin\shutdown.bat

Da mesma forma que na inicialização, o Tomcat executa informações no Prompt de comandos indicando sua paralisação total.

No Linux/Mac OS X

Para o Linux e Mac OS X (Unix), da mesma forma que, no iniciar, precisamos dar permissão de execução através do arquivo de script bash mostrado a seguir.

No terminal de comandos, iniciamos a mudança da permissão do bash script da seguinte forma:

chmod 0700 $CATALINA_HOME/bin/shutdown.sh

Para realizar a finalização do processo do Tomcat, ou melhor dizendo, pará-lo, execute este comando:

$CATALINA_HOME/bin/shutdown.sh

Da mesma forma que na inicialização, o Tomcat executa informações no Terminal indicando sua paralisação total.


fev 16 2016

Iniciando com Java em aplicações Web – Configurando o Tomcat

Category: Iniciante,Inicio,Servidores Java,TomcatEdson Gonçalves @ 23:54

O Java SE (Standard Edition) é planejado para desenvolvimento do lado cliente e pode ser usado para criar as tradicionais aplicações baseadas em cliente/servidor.

As aplicações Web, quando usada a linguagem Java, são tidas como Java EE (Enterprise Edition). A implementação de aplicações Web usando o padrão Java EE é bastante complexa e possui diversas características.

Servlets e JSP são duas tecnologias que foram desenvolvidas originalmente pela Sun Microsystems (atual Oracle), para desenvolvimento de aplicações Web, partindo de componentes Java que executam no lado servidor. Portanto, para trabalhar com Servlets e JSP, precisamos de um servidor Web que saiba interpretar a linguagem Java, ou melhor dizendo, que siga os padrões impostos pela documentação Java EE.

Para um iniciante, o executor mais mais fácil de aprender é um Servlet contêiner. A fundação Apache mantém o Servlet contêiner provavelmente mais conhecido entre os desenvolvedores: o Apache Tomcat.

O Apache Tomcat

O Apache Tomcat possui suas origens no início da tecnologia Servlet. A Sun Microsystems, adquirida pela Oracle, criou o primeiro contêiner servlet, chamado de Java Web Server, para demonstrar a tecnologia. Como não era um servidor robusto para uso na Web, não obteve sucesso. Ao mesmo tempo, a Apache Software Foundation (ASF) criou JServ, um servlet engine que se integrava com o servidor Web Apache.

Em 1999, a Sun Microsystems doou o código do Java Web Server para a ASF e os dois projetos se fundiram, criando o Apache Tomcat. A versão 3.x foi a primeira da série Tomcat e teve a descendência direta do código original, aquele doado pela Sun Microsystems.

Em 2001, a ASF liberou a versão 4.0 do Tomcat, que era uma arquitetura completa, redesenhada, no qual teve um novo código base. A série Tomcat, versão 4.x, é uma RI (reference implementation – implementação de referência) das especificações Servlet 2.3 e JSP 1.2.

A versão do Apache Tomcat 5.x é a RI das especificações Servlet 2.4 e JSP 2.0. A versão do Tomcat 6.0.x trabalha com as especificações Servlet 2.5 e JSP 2.1 e a versão 7.0.x com as especificações Servlet 3.0 e JSP 2.2. Finalmente, a versão 8.0.x, que trabalha com as especificações do Servlet 3.1 e JSP 2.3, ao qual este post é baseado.

Tecnicamente, o Tomcat é um contêiner Web Java e também um servidor Java. Isto quer dizer que, o Apache Tomcat, tem a capacidade tanto de atuar como servidor Web/HTTP, assim como pode funcionar integrado a um servidor web dedicado, como o Apache ou o Microsoft IIS. O Tomcat, porém, não implementa um contêiner EJB, no qual possibilita o uso de Enterprise Java Beans.

Baixando e Instalando o  Apache Tomcat

Para instalar o Apache Tomcat, inicialmente, você deverá ter instalado a JVM em sua máquina. Caso ainda não tenha feito, veja meu post Iniciando com Java em aplicações Web – Configurando o Java.

A versão 8.0.x do Tomcat, é focada para trabalhar sobre a plataforma Java SE 7 ou superior.

Instalar o Apache Tomcat é simples e, como feito na instalação do JDK, temos diferentes formas nos sistemas operacionais Windows, Linux e Mac OS. No Windows,  por exemplo, podemos contar com um assistente de instalação. Você deverá baixar a versão desejada no site http://tomcat.apache.org/, em Download, selecionando a versão Tomcat 8. Depois, escolha a distribuição binária desejada, de acordo com seu sistema operacional, baixe-o na máquina e siga as instruções a seguir para configurar e instalar o Tomcat.

Nota: Sempre que me referir ao caminho do Apache Tomcat, instalado em seu computador, será mostrado a variável $CATALINA_HOME para facilitar.

 

No Windows

Existe mais de uma forma de instalar o Tomcat no sistema operacional Windows. Na página para baixar o arquivo, no item Binary Distributions, encontramos o item Core, que permite selecionar o arquivo compactado em formato ZIP (zipado) ou TAR.GZ (tarball), assim como Windows Executable.

O Tomcat como executável nos proporciona a instalação em forma de assistente. No caso, iremos dar preferência ao arquivo compactado, baixando para o Windows no formato .zip. Existe a opção de 32bits e 64bits, para que escolha de acordo com o sistema que executa em sua máquina.

Assim que baixar, descompacte o Tomcat e coloque-o em um diretório chamado de apache-tomcat-8x, tornando assim fácil o seu acesso ao diretório e assimilação nos exemplos que teremos mais adiante.

A variável %CATALINA_HOME% é o nome da variável, que damos, para nos referir ao diretório onde foi escolhido para instalar o Tomcat. No sistema operacional Windows, você deve fazer o mesmo procedimento executado no caso da configuração do JDK.

Crie uma variável chamada de CATALINA_HOME, em Painel de Controle»Sistema e Segurança»Sistema, na caixa de diálogo Propriedades do Sistema, aba Avançado»Variáveis de Ambiente > botão Novo, e coloque, em seu valor, o caminho da instalação do Apache Tomcat. No caso do post, o Apache Tomcat foi colocado em “C:\Program Files\apache-tomcat-8x (veja a ilustração da Figura 1).

Figura 1

Figura 1 – Adição da variável CATALINA_HOME no Windows 8

No Linux

No Linux você pode instalar como fez no Windows, baixando o arquivo com extensão tar.gz (tarball) ou .zip, a que lhe for mais conveniente.

Caso tenha optado pelo formato tarball, descompacte o arquivo no diretório onde baixou o arquivo e o mova, caso necessário, para onde deseja colocar o seu Apache Tomcat.

Por exemplo, como tenho o usuário “edson  em meu Linux, vou descompactar para ele o meu Apache Tomcat com o seguinte comando:

tar xf apache-tomcat-8.0.14.tar.gz -C ~/apache-tomcat-8x

Depois de instalado, vamos configurar as variáveis de ambiente.

1) Como na configuração das variáveis JAVA, dependendo da sua distribuição, no Linux, basta entrar no arquivo .profile em /etc/.profile e adicionar as linhas a seguir informadas. Como realizei configurações na distribuição Linux Ubuntu, o local indicado é em “~/.bashrc“, sem as aspas, claro.

CATALINA_HOME=~/apache-tomcat-8x
export CATALINA_HOME

2) Execute o seguinte comando para leitura novamente no arquivo . bashrc:

source ~/.bashrc

Nota: Se for iniciante, cuidado ao editar o arquivo .bash_profile. Entenda que o “~” til é um atalho para seu usuário que, no Linux, é o mesmo que escrever o caminho físico “/home/edson”, no meu caso, sem aspas. Após o sinal de “=“, da declaração da variável CATALINA_HOME, não dê espaço.

No Mac OS X

Como no Linux, realizamos a mesma operação no sistema operacional Mac OS X, baixando o arquivo com extensão tar.gz ou .zip.

Você pode descompactar e mover para o seu usuário, renomeando o diretório caso queira fazer como neste livro.

Após a descompactação, no arquivo “~/.bash_profile” adicione a variável CATALINA_HOME com o local onde instalou o Apache Tomcat. No caso do livro, deixamos o diretório com o nome de apache-tomcat-8x. Os passos para serem feitos no Mac OS X:

1) Descompacte o tar.gz em um diretório criado chamado apache-tomcat-8x:

tar xf apache-tomcat-8.0.14.tar.gz -C ~/apache-tomcat-8x

2) Em “~/.bash_profile” adicione a variável CATALINA_HOME:

CATALINA_HOME=~/apache-tomcat-8x
export CATALINA_HOME

3) Execute o seguinte comando para leitura novamente no arquivo . bash_profile:

source ~/.bash_profile

Nota: Se for iniciante, cuidado ao editar o arquivo .bash_profile como no caso do Linux. Entenda que o “~” til é um atalho para seu usuário – no meu caso do Mac OS X é o mesmo que escrever o caminho físico “/Users/edson”, no meu caso, sem aspas. Após o sinal de “=“, da declaração da variável CATALINA_HOME, não dê espaço.


fev 07 2016

Iniciando com Java em aplicações Web – Configurando o Java

Category: Servidores JavaEdson Gonçalves @ 17:22

Para desenvolver aplicações Web escritas em Java, precisamos de dois elementos simples:

1. Inicialmente precisamos do kit de desenvolvimento Java, conhecido como JDK, para executarmos uma Java Virtual Machine no computador de desenvolvimento.

2. Um contêiner Servlet, que nada mais é que um servidor Web capaz de executar todos os tipos de aplicativos feitos para a Internet, como páginas HTML, arquivos CSS, imagens, JavaScript e outros, além de exclusivamente trabalhar com as classes compiladas por uma JDK, retornando ao usuário final páginas renderizadas com conteúdo HTML.

No mercado existem diversos servidores Web que permitem interpretar as classes compiladas em Java, sendo os mais conhecidos: Apache Tomcat/Gerônimo e TomEE, Red Hat Wildfly/JBoss, IBM WebSphere, Oracle GlassFish, Jetty (Fundação Eclipse).

Os artigos serão feitos, inicialmente, com  a versão JDK 8 e o uso do Apache Tomcat 8, focado no iniciante que está aprendendo os primeiros passos.

Fazendo Download do JDK

Para que você comece a desenvolver programas em Java, temos como passo inicial obter o Kit de Desenvolvimento Java, que na atualidade está na versão 8 estável – chamado de Java SE Development Kit 8 ou, simplesmente, JDK 8. Para baixar o JDK você deve acessar o seguinte endereço: http://www.oracle.com/technetwork/java/javase/downloads/index.html.

Embora a página de download possua mais de uma opção para você baixar, a plataforma Java será o suficiente para nosso trabalho:

Java Platform (JDK) – Este é o kit de desenvolvimento Java, que consiste de várias ferramentas, entre elas um compilador (javac), uma ferramenta de execução (java), uma ferramenta para geração de documentação (javadoc), um conjunto de bibliotecas prontas para o uso e etc.

Ao clicar em download, você será direcionado para escolher a plataforma e baixar.

Observe que na página de Download existem diversas versões de JDK e plataformas. Você  deverá efetuar o download do Java SE para o seu sistema operacional.

A Instalação do Java SE no Sistema Operacional Windows

O JDK para o sistema operacional Windows possui duas versões: 64bits ou 32bits. Utilizarei no exemplo a versão de 64bits. O formato para o arquivo, “jdk-VERSAO-windows-x64.exe”, é um executável no padrão do sistema operacional. Para iniciar o instalador, duplo clique no arquivo que abrirá o assistente.

O assistente, para quem não conhece a instalação de um programa, costuma ter, como padrão,  as principais configurações necessárias para sua operação. Basta seguir as recomendações feitas avançando no assistente até que seja iniciada a instalação.

Configuração do kit em seu ambiente operacional

No Sistema Operacional Windows, é preciso configurar a variável de ambiente. No Windows antes da versão 7, você deve entrar no Painel de Controle, Sistema e, na guia Avançado, clicar no botão Variáveis de Ambiente.

No Windows 7/8, vá em Painel de Controle > Sistema e Segurança >Sistema e clique em Configurações avançadas do sistema.

Painel de Controle do Windows 8 em Sistema e Segurança

Figura 1- Painel de Controle do Windows 8 em Sistema e Segurança

Na caixa de diálogo Propriedades do Sistema, clique na aba Avançado e depois no botão Variáveis de Ambiente.

Figura 2 – Guia Avançado em Propriedades do Sistema

Figura 2 – Guia Avançado em Propriedades do Sistema

Crie uma variável de sistema chamada JAVA_HOME e coloque o caminho da instalação do Java JDK, em Valor da variável, como por exemplo: C:\Program Files\Java\jdk1.8.0_25\. Confirme a sua criação.

Figura 3 – Criação da variável de ambiente JAVA_HOME

Figura 3 – Criação da variável de ambiente JAVA_HOME

A variável PATH, já existente, aparece na lista abaixo, em Variáveis de Ambiente. Esta variável PATH contém uma lista de diretórios (caminhos de programas), separados por pontos-e-vírgulas.  Clique no botão Editar ao selecionar a variável PATH. Vá até o fim desta variável e adicione um ponto-e-vírgula, se não houver.  Digite a variável JAVA_HOME, onde seu JDK está instalado, seguido de \bin, ficando da seguinte forma:

%JAVA_HOME%\bin;

Confirme as caixas de diálogos para concluir a adição das variáveis no sistema operacional.

Figura 4 – Edição da variável PATH

Figura 4 – Edição da variável PATH

Para testar se as configurações das variáveis de ambiente foram bem sucedidas, abra o prompt de comando e execute este comando a seguir.

java -version

Deve aparecer ao executar o comando as informações das configurações do executor Java como no exemplo a seguir.

java version “1.8.0_25”
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

NOTA: As variáveis de ambiente são sequências de caracteres que possuem informações como unidade, caminho ou nome de arquivo. As variáveis de ambiente controlam o comportamento de vários programas. Como exemplo de variáveis de ambiente temos: PATH, CLASSPATH, USER, TEMP, JAVA_HOME e etc.

A Instalação do Java SE no Sistema Mac OS

Após baixar o JDK, arquivo no qual usa o pacote padrão do sistema operacional, algo como “jdk-VERSAO-macosx-x64.dmg”, você dará um duplo clique para iniciar o assistente de instalação. Você pode ver as configurações do Java instalado no seu Mac OS em Preferências do Sistema>Java.

Configurando e Testando a Instalação no Mac OS X

Precisamos agora configurar e testar. Os passos a seguir realizam as tarefas que necessitamos para termos a JDK funcional:

1) Para configurar, abra o Terminal (Launchpad>Outros) e execute o comando a seguir:

open ~/.bash_profile

1.1) Acrescente as seguintes linhas, onde jdk1.8.0_25.jdk é a versão que estou usando enquanto escrevo este livro:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

export PATH=$JAVA_HOME/bin:$PATH

1.2) Salve e feche o editor de textos.

3) Execute o seguinte comando para leitura novamente no arquivo .bash_profiler:

source ~/.bash_profile

4) Verifique se a versão instalada está correta executando o comando mostrado a seguir:

java -version

Deve aparecer algo similar ao mostrado no meu exemplo que indica que as configurações foram bem sucedidas:

java version “1.8.0_25”
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

Instalando o Java SE no Sistema Operacional Linux

No Linux, existem diversas formas de instalar uma versão JDK.  Após a conclusão do download do JDK, abra o terminal do Linux e siga os passos mostrados a seguir. No momento em que escrevo esse livro, a versão baixada para o exemplo é a jdk-8u25-linux-x64.tar.gz.

Digamos que você tenha baixado no diretório ~/Downloads, como foi o caso na elaboração deste livro. Neste caso, o JDK é apenas descompactado. Você pode manter operando o JDK apenas o seu usuário ou, se preferir, mover para algum diretório específico onde outros usuários poderão utilizá-lo.

Para descompactar no usuário, basta realizar o comando mostrado a seguir.

tar xf ~/Downloads/jdk-8u25-linux-x64.tar.gz

Dependendo da sua distribuição, no Linux, basta entrar no arquivo .profile em /etc/.profile e adicionar as linhas a seguir.

Como realizei configurações no meu Ubuntu, o local indicado é em “~/.bashrc“, sem as aspas, claro.

JAVA_HOME=~/jdk1.8.0_25
JRE_HOME=~/jdk1.8.0_25/jre
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/lib
export MANPATH=$MANPATH:$JAVA_HOME/man

As variáveis usadas são explicadas rapidamente a seguir, dando a você noção do que cada uma faz:

  • JAVA_HOME – Diretório onde a JDK está instalada
  • JRE_HOME – Diretório onde a máquina virtual está instalada
  • PATH – Diretório dos executáveis, onde inclui o do Java
  • CLASSPATH – Diretório das libs
  • MANPATH – Diretório do manual, acessível por man javac.

Para testar, abra o Terminal e execute este comando:

java -version

Deve aparecer algo similar ao mostrado a seguir, como ocorre nos demais sistemas operacionais já abordados, quando o comando é bem sucedido.

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

Nota: Algumas distribuições Linux já possuem uma versão do JDK instalado por padrão, principalmente a versão OpenJDK. Para saber sobre a versão do JDK Open Source, assim como versões disponíveis para instalação em determinadas distribuições Linux, visite o site http://openjdk.java.net/.

Tags: , , ,


abr 11 2012

Se o servidor é seu, porque o problema é meu?

Category: Off-Topic,Servidores JavaEdson Gonçalves @ 15:43

Quero começar este ano, em meu blog, falando um pouco sobre administração em aplicativos e servidores Java, que serve também no geral para outros serviços.
Desde que assumi a gerência da Integrator na parte de hospedagem, vejo e-mails que são direcionados ao suporte e recebo também, muitos pedidos que, sinceramente, não deveriam vir de um desenvolvedor Java.

A critica que faço aqui é construtiva e, de certa forma, um puxão de orelha, para que os profissionais que trabalham com desenvolvimento, comecem a se preocupar mais com o que criaram e assumam o problema.

Criei meu aplicativo e agora?

Tudo começa com a sua criação. Você, profissional desenvolvedor, recebeu a árdua tarefa de criar aquele sistema “maravilhoso“ que alguém idealizou ou, por motivos pessoais, quis aprender algo ou desenvolver o sistema de seus sonhos.

Depois de muita luta, você desenvolveu e foi aprovado por seu cliente, a diretoria da empresa onde trabalha ou por você.

Mas e agora? Como executar isto fora de minha máquina de desenvolvimento?

Do desenvolvimento até a produção

Muitos desenvolvedores se acostumaram com a automação das ferramentas de desenvolvimento e, claro, com tanta facilidade, parar e iniciar o serviço Java ali é simples.  Entretanto, o desenvolvedor java não pode apenas saber como operar uma ferramenta de desenvolvimento.

O profissional de Java precisa, na realidade necessita, conhecer o servidor Java que executa seus aplicativos. Não é apenas o básico de instalar, configurar, iniciar e parar. Também não vale dizer que sabe ler logs. Vai além. O profissional Java precisa saber como o servidor Java, que escolheu usar, opera.  Isso vai desde as suas características básicas de configuração, até como ele pode ser modificado e otimizado para melhorar o desempenho do que desenvolveu.

Está bem, você vai dizer que não quer ser administrador, mas sim é um desenvolvedor, certo? Errado! Isto é comum no governo, onde um carimba e outro coloca a folha. Se olhar para fora, verá que muitos fazem várias tarefas diferentes. E no seu caso, o servidor Java é a extensão do seu aplicativo.

O aplicativo precisa funcionar em qualquer lugar

Se você é o desenvolvedor, logo, é importante saber como fazer para que o seu aplicativo funcione em qualquer lugar, não somente em sua máquina. Usar o framework XYZ não é a etapa final do que criou. É no momento que ele vai para produção, que é onde aparecerão os problemas.

O que mais vejo e escuto é a frase: na minha máquina funciona. Ora, se você desenvolve corretamente, sem nenhum problema oculto, nada personalizado especificamente para sua máquina, que causaria erros online, também funciona em qualquer lugar.

Estes são os problemas mais comuns  do desenvolvimento para a produção são:

1)    Nome do banco de dados – criar a conexão usando um nome local, onde na produção se modifica, bate o recorde em erros de acesso pelo usuário;

2)    Nome do usuário do banco de dados – segundo problema mais comum, o usuário é diferente e gera erro de acesso negado;

3)    Permissões de acesso em arquivos – o terceiro mais comum, quem usa o Windows está muito acostumado a ter permissão para tudo. Mas online, servidores seguros tem permissões para escrita e execução, que precisam ser dadas em arquivos e diretórios;

4)    Erro no local onde está o banco de dados – conhecer a regra de como acessar o banco de dados no servidor de produção é o mínimo, vai desde do host até a porta. Não sair colocando o que “acha” ser o correto. Na dúvida, sempre perguntar a quem administra o sistema operacional para evitar erros e mudar, principalmente, no código que foi compilado para colocar em produção;

5)    Problemas de memória – usar o framework XYZ porque ele foi indicado na comunidade como bacana é ótimo. Mas saber o que ele consome de sua máquina é melhor ainda. Não adianta achar que sabe como usar o Tomcat, que localmente tudo funciona, que online não vai dar problemas, se você nem sabe localmente o quanto o Tomcat necessita de memória para executar seu aplicativo. Máquina de desenvolvimento possuem vários GIGAS de memória RAM e muitas vezes o desenvolvedor nem se preocupou em limitar o serviço em um X de memória. Online, você terá configurado uma limitação no servidor Java. É importante saber se, dentro desta limitação, seu aplicativo executa com conforto;

6)    Envio de email – O SMTP tem regras em qualquer lugar. Saber a porta correta, parâmetros básicos mínimos necessários é importante para que, em produção, o envio seja feito sem erros.

7)    Erro 404 – O deploy não funcionou, logo, tem algo de errado e precisa ver nos logs o que está ocorrendo;

8)    Bibliotecas – As bibliotecas que usa no desenvolvimento precisam estar em produção. Se exportou o WAR file, EAR file, e nenhum está com as bibliotecas, ou falta alguma, porque foram colocadas diretamente no servidor Java, precisa fazer o mesmo em produção. Algumas bibliotecas também costumam dar problema quando existem duas do mesmo tipo, mas com versões diferentes.

9)    Localização – Não deveria estar nesta lista, mas infelizmente, é um erro também comum. É possível configurar o Locale em seu aplicativo ou diretamente no servidor Java. Não é porque na sua máquina o Locale é em pt-br que online vai ser também. Saber modificar isso no servidor Java que seja, não é difícil e lhe salva de dores de cabeça com uma configuração muito simples.

10)  Erro na descompactação do arquivo WAR – Probleminha comum quando você sobe por FTP o aplicativo com o Tomcat ligado, por exemplo, causando um hot deploy sem o arquivo ter finalizado totalmente o seu envio. Alternativamente, ocorreu alguma queda de pacote no envio e ocorreu uma falha, deixando o  arquivo impossibilitado de ser operado e, consequentemente, o servidor Java lançará um erro na descompactação.

11) Assumir o problema – É, eu sei, isto não se trata de erro de produção. Mas pensar é um ato importante para resolver problemas. Sair culpando outro, sendo que o problema é seu, não faz parte do meio que escolheu como profissão. Se assumiu um cargo como desenvolvedor, assuma também que o que fizer, desenvolver, pode ter falhas e que elas são corrigíveis. Assumir o problema é o primeiro passo em direção da solução.

 

Os logs são a chave para a solução dos problemas

Todos os problemas, que relatei acima, sempre lançam exceções. Claro que, muitas vezes, o desenvolvedor sai reclamando antes de pensar, que é sua maior tarefa, do porque essas exceções estão sendo lançadas. A grande vantagem do java é que ele aponta o dedo para o problema. E de tantos que usam no mundo, é muito fácil descobrir uma resposta para o problema. Mas fica mais difícil se quiser que resolvam o SEU problema para você, acredite.

 

Indo além dos servidores Java

Em produção, não basta apenas saber como operar um servidor Java. Você desenvolveu o aplicativo e, como conhecedor do que fez, deve também saber que o seu uso pode crescer. Mas, muitas vezes, se esqueceu de que o comportamento com 10 pessoas testando é um e com centenas online, é outro.

Um belo dia, seu servidor Java caiu, se não caiu, deu um erro estranho em seu aplicativo ou aconteceu algo que não havia previsto, claro.  Mas a culpa não é sua, certo? Funcionava antes e não mexi em nada. Errado! Totalmente sua culpa. Só de dar a resposta de que não mexeu em nada já implica que não está cuidando do que fez. Se não observar por um tempo o que desenvolveu, a evolução do que fez, não vai ter correções e, como consequência, erros. Saiba estes princípios básicos no desenvolvimento:

1)    Bibliotecas e frameworks mudam – se mudam de versão, é porque a anterior não era perfeita. Erros são reportados e precisam ser atualizados para evitar que no seu, uma hora ocorra o que outro já teve.

2)    Servidores Java mudam – mesma situação que citei acima, se mudou a versão do servidor Java, pode ser que, algum possível bug pode causar problemas em seu aplicativo.

3)    Profiler – Usar um profiler vai lhe orientar como seu aplicativo se comporta e ver possíveis picos de memória/CPU que possam lhe causar problemas, mais adiante, com muitos usuários acessando.

Atacando o problema de frente

Evidentemente muitas são as situações que ocorrem em aplicativos. Nem todos os problemas são simples de serem solucionados. Mas alguns podem ser de simples resolução se, de fato, você realmente quiser resolver a situação. Vale citar alguns:

1)    Otimize o banco de dados – Conhecer queries lindas com subqueries é muito bom. Mas saber o que elas causam, ao serem chamadas em bancos de dados, com muitos dados, é melhor ainda. Otimizar queries é importante para melhorar o desempenho.  Claro que, em meio a isto, entram também saber otimizar a estrutura das tabelas, criar índices corretos e até mesmo criar caches de queries de pesquisas, as mais comuns, para melhorar o seu desempenho no acesso ao aplicativo.

2)    Modificar o comportamento falho do aplicativo – Sim, sei que você não quer mexer no que estava funcionando bem nos primeiros 10.000 registros/acessos. Mas agora não está mais. Muita gente acessando, muitos erros sendo lançados, memória, velocidade. Precisa modificar o comportamento, voltar para a “prancheta” do desenvolvimento e replanejar. Se não fizer isto, seu projeto vai falhar, mais dia ou menos dia.

3)    Mude de servidor Java – Sei que você aprendeu agora, e muito bem, aquele servidor chamado Apache Tomcat. Mas ele pode não estar dando conta do recado como outro daria. É hora de conhecer novos servidores Java e testar, seja o Jetty, JBoss ou GlassFish. Algumas pequenas mudanças, como a troca de servidor Java, podem trazer benefícios ao que desenvolveu, mesmo que isto lhe traga de volta ao “be a bá” de como tudo funciona.

4)    Buscar alternativas – Sempre , em algum lugar deste planeta imenso do desenvolvimento, alguém arrumou alguma solução que  fez melhorar o desempenho do aplicativo com aquela tecnologia XYZ que escolheu e deu a dica. Busque alternativas e dicas.

 

Empurrão ou puxão de orelha?

Minha intenção é dar a vocês, leitores deste blog, um empurrão no sentido certo. Existem várias etapas no desenvolvimento e todas envolvem o que criou. Vai desde o sistema operacional que irá trabalhar em produção, até o que é acessado pelo seu aplicativo.  Estes detalhes precisam ser todos analisados, mesmo que você diga que é apenas um mero desenvolvedor Java.

Tags: , , ,


Próxima página »