Configurando um WebServer para acessar o Firebird através de Java Server Pages

por Walid Jradi

 

Ok, você tomou uma atitude sensata e resolveu migrar para um SGBD estável, robusto e confiável. Mas aí surge a necessidade de tornar suas informações disponíveis pela Internet, e vem a dúvida: Qual tecnologia usar, em meio a siglas esotéricas tais como SOAP, WebSnap, CGI, ISAPI, entre muitas outras?  Uma idéia razoável é implementar suas páginas dinâmicas usando Java, graças às suas características de portabilidade, ampla utilização ao redor do mundo, segurança e muito mais. Se você já tinha pensado nisso, mas não sabia o caminho das pedras, este pequeno passo-a-passo vai ajudá-lo no processo de configuração de um WebServer a la Java.

 

Este tutorial presume que ambos, sistema operacional e servidor Firebird, estão instalados e funcionando corretamente. Na minha implementação, usei o Mandrake 9 para o WebServer e o Conectiva 8 (ambos kernel 2.4.19) para o Firebird. Vale lembrar que tudo que for descrito aqui poderá ser usado, com poucas adaptações, no ambiente Windows.

 
 

Passo 1: Obtendo o software necessário

Programa

Descrição Link para download

Apache

Servidor Web. Tem o tamanho aproximado de 10 Megabytes (Linux) e 6.7 Megabytes (Windows).

www.apache.org
 

Tomcat

Container servlet usado para a implementação das tecnologias Java Servlet e JavaServer Pages. Tamanho aproximado: 6.5 Megabytes (Linux) e 8.5M (Windows).

jakarta.apache.org/tomcat/index.html
 

Java2 SDK

Compilador Java, que será usado pelo Tomcat para gerar o nosso ByteCode. Tamanho aproximado: 40M (Linux, rpm) e 37M (Windows).

java.sun.com/j2se/downloads.html
 

JayBird

Driver JDBC que será usado pelo Tomcat para acessar o servidor Firebird.

www.ibphoenix.com
 
 

Passo 2: Instalando e configurando os programas

2.1 - Apache

 

Descompacte o arquivo .tar.gz (httpd-2.0.40-i686-pc-linux-gnu-rh73.tar.gz neste tutorial). Em seguida, entre no subdiretório que foi gerado (normalmente httpd-2.0.40) e digite:

./configure --prefix=PREFIX

onde PREFIX é o diretório no qual o Apache deve ser instalado (normalmente /usr/local/apache2). Em seguida, digite:

make
make install

Após a finalização da instalação, você pode iniciar o Apache digitando:

PREFIX/bin/apachectl start

Para verificar se tudo correu normalmente, abra um Browser qualquer e digite no campo Endereço o IP (por exemplo, http://200.1.2.3) ou o nome da máquina, se o DNS estiver configurado (por exemplo, http://WebServer). A tela padrão do Apache deverá ser exibida.

Atenção. Essa é uma instalação bastante simplificada. Se quiser uma explicação detalhada sobre o Apache e outros serviços de WebServer, leia o artigo "Servidor Web - Apache", de autoria da Conectiva, clicando aqui.


2.2 - Java2 SDK

Instale o SDK de acordo com as instruções contidas no release que você obteve. Normalmente, um simples

rpm -i nome_do_pacote (rpm -i j2sdk-1_4_1-fcs-linux-i386.rpm   em nosso tutorial)

será suficiente, com o Java sendo instalado em /usr/local/j2sdk1.4.1 (ou algo parecido).

Defina uma variável de ambiente chamada JAVA_HOME, apontando para o diretório no qual o compilador Java foi instalado. Por exemplo:

set JAVA_HOME=/usr/local/j2sdk1.4.1

Esta variável será usada pelo Tomcat durante o processo de compilação de nossos arquivos .jsp.


2.3 - Tomcat

Descompacte o arquivo .tar.gz (tomcat-4.1.18.tar.gz no nosso tutorial) em um diretório próprio para o Tomcat (eu usei /usr/tomcat). A partir de agora, CATALINA_HOME irá referir-se ao diretório base da instalação do Tomcat, que no nosso tutorial é /usr/tomcat

Defina uma variável de ambiente chamada CATALINA_HOME, apontando para o diretório no qual o Tomcat foi instalado. Por exemplo:

set CATALINA_HOME=/usr/tomcat

Inicie o Tomcat:
CATALINA_HOME/bin/startup.sh

Depois de iniciado, a aplicação Web padrão do Tomcat pode ser acessada digitando-se no Browser:

http://200.1.2.3:8080 (substitua o IP pelo do seu WebServer, ou use o nome da máquina)

Informações adicionais sobre a configuração do Tomcat podem ser encontradas na documentação que acompanha o software.


2.4 - Jaybird

Descompacte o arquivo FirebirdSQL-xxxx.zip, onde xxxx é a versão do driver que você obteve. À época deste tutorial, a versão mais recente era a 1.0.0 Release Candidate 2, portanto o nome do arquivo era FirebirdSQL-1.0.0RC2.zip. Após descompactar, será gerado um diretório com a seguinte estrutura:

17/12/2002 17:28 86.656  firebirdjmx.jar
17/12/2002 17:28 273.106 firebirdsql.jar
17/12/2002 17:28 257.401 firebirdsql.rar
17/12/2002 17:28 117.186 firebirdsql-test.jar
17/12/2002 17:27 <DIR>   lib
16/12/2002 19:14 31.950  JDBC20_conformance.html
16/12/2002 21:23 140.967 faq.html
16/12/2002 21:23 12.424  release_notes.html

Copie os 4 arquivos que estão no subdiretório lib (jaas.jar, log4j-core.jar, mini-concurrent.jar e mini-j2ee.jar) para o diretório CATALINA_HOME/shared/lib. Copie também o arquivo firebirdsql.jar para este mesmo diretório. Estes são os arquivos que o Tomcat usará para se comunicar com o Firebird.

Defina uma variável de ambiente chamada CLASSPATH, que indicará ao Tomcat onde localizar os drivers JDBC. Se você instalou o Tomcat em /usr/tomcat, o seu valor poderá ser definido digitando-se:
 
set CLASSPATH=/usr/tomcat/shared/lib/jaas.jar:/usr/tomcat/shared/lib/log4j-core.jar:/usr/tomcat/
shared/lib/mini-concurrent.jar:/usr/tomcat/shared/lib/mini-j2ee.jar:/usr/tomcat/shared/lib/
firebirdsql.jar
 
Duas observações antes de continuarmos:
 

Primeiro: Por um motivo que escapa à minha compreensão, o Tomcat não reconhece alterações na estrutura do diretório CATALINA_HOME/shared/lib, nem alterações na variável CLASSPATH, após ter sido iniciado. Não adianta reiniciar Tomcat, Apache, nada. A única maneira de contornar esse problema é: tudo definido, reinicie o Servidor Web.

 

Segundo: Devido a este inconveniente, você com certeza desejará que as variáveis JAVA_HOME, CATALINA_HOME e CLASSPATH estejam sempre disponíveis logo após o boot, bem como os serviços Apache e Tomcat. Para isso, você deve saber como funciona a estrutura do diretório /etc. Se não faz a menor idéia do que é isso, clique aqui. para um ótimo artigo de Greg O´Keefe, e aqui para a continuação do mesmo.

 

Passo 3: Escrevendo o nosso primeiro .jsp com acesso ao FireBird
 

Como você provavelmente escreverá vários .jsp até chegar à versão definitiva de seu site, é uma boa idéia guardar as configurações globais de seus servidores em um arquivo separado. Desta forma, uma alteração qualquer que se fizer necessária deverá ser executada em apenas um arquivo, poupando tempo e, por conseqüência, dinheiro.

Crie um arquivo chamado ServerConfiguration.jsp com o seguinte conteúdo:

 
<%
//substitua o caminho pelo de seu gdb.

String DataBaseAddr ="jdbc:firebirdsql:192.168.0.33:/opt/interbase/examples/employee.gdb";
String UserName ="sysdba";
String Password ="masterkey";
String WebServerAddr="200.1.2.3";
%>

 

e salve-o no diretório CATALINA_HOME/webapps/ROOT. Este é o diretório base do Tomcat, onde os seus JSPs devem residir. Claro que subdiretórios são permitidos. Se quiser informações detalhadas sobre estas configurações de diretórios, leia a documentação do Tomcat.

 

Agora sim vamos criar nosso primeiro .jsp. Obviamente, a intenção deste tutorial não é ensinar a programar Java Server Pages. Para isso existem excelentes tutoriais na Internet. Um bom ponto de partida é o jspbrasil.

Crie e salve um arquivo chamado teste.jsp com o seguinte conteúdo:

 

<%@
include file="ServerConfiguration.jsp"
%>
<%@ 
page import="org.firebirdsql.jdbc.*,org.firebirdsql.logging.Logger,java.sql.*"
%>
<%
Class.forName("org.firebirdsql.jdbc.FBDriver");
Connection aConnection = DriverManager.getConnection(
DataBaseAddr,UserName,Password);

Statement stmt = aConnection.createStatement();

String SQL="SELECT * FROM EMPLOYEE ";
SQL=SQL+ "ORDER BY LAST_NAME";
ResultSet aQuery = stmt.executeQuery(SQL);
%>

<html>
<body bgcolor="#E0E0E0">
<table> 
<tr><td>EMP_NO</td><td>First Name</td><td>Last Name</td></tr> 
<%
while (aQuery.next())
{
%>
<tr> 
<td><%= aQuery.getString("EMP_NO") %></td> 
<td><%= aQuery.getString("FIRST_NAME") %></td> 
<td><%= aQuery.getString("LAST_NAME") %></td> 
</tr> 
<%

%>

</table> 
<%
aQuery.close();
stmt.close();
aConnection.close(); 
%>
</body> 
</html>

 
Para testar o nosso primeiro Java, digite no Browser:
 
http://200.1.2.3:8080/teste.jsp
 

O Tomcat compilará e exibirá nossa lista de empregados. Agora, é só colocar a mão na massa. Não há mais desculpas para não usar Java em suas páginas Web.

 
Escrito por Walid Jradi em 15-01-2003
http://www.ultimatum.com.br
 

May the force be with you, my friend.