Академический Документы
Профессиональный Документы
Культура Документы
Mrcio d'vila, 16 de dezembro de 2003. Reviso 12, 21 de agosto de 2004. Categoria: Programao: Java: Servidor Este tutorial foi inicialmente escrito e testado com base em uma instalao do Tomcat 4.1 em Windows. Posteriormente, tem sido expandido para cobrir tambm o Tomcat 5. Na medida do possvel, as informaes apresentadas contemplam tambm as plataformas Unix/Linux. As configuraes aqui propostas so para criar um ambiente de desenvolvimento bem simples, suficiente para um primeiro contato com o Tomcat. Os arquivos de configurao e exemplos listados aqui esto tambm disponveis para download, como um pacote ZIP:
1. Instalar JDK
necessrio ter um Kit de Desenvolvimento de Software (SDK) Java 2 Platform Standard Edition (J2SE) previamente instalado. Para obter o J2SE SDK (tambm conhecido abreviadamente como JDK) e obter informaes sobre a instalao em seu sistema operacional, acesse o site Sun Java:
Download: http://java.sun.com/j2se/1.4/download.html para Windows, Solaris e Linux. Para outros sistemas operacionais, veja Portes da platforma Java Informao: Java 2 SDK Notas de Instalao para Solaris, Windows e Linux, 32 e 64 bits Home-page: http://java.sun.com/j2se/
Recomendado J2SE 1.4.2 ou superior. Quando este tutorial foi editado, a verso mais recente era J2SE 1.4.2_05 SDK.
1.1. JAVA_HOME
Complementando a instalao do Java 2 SDK, defina a varivel de ambiente JAVA_HOME apontando para seu local de instalao: Windows 2000 ou superior:
Acesse "Painel de Controle" > Sistema > aba "Avanado". Pressione o boto "Variveis de ambiente" (ver imagem). No grupo "Variveis do sistema", crie uma nova varivel JAVA_HOME, ou edite se j existente, definindo como valor o caminho da pasta de instalao C:\j2sdk1.4.2 (ver imagem). Windows 9x / NT: Edite o arquivo autoexec.bat, para incluir a linha:
set JAVA_HOME=C:\j2sdk1.4.2
Linux / Unix: Edite o profile do usurio (para sh: ~/.profile) ou global do sistema (/etc/profile), para incluir a linha:
JAVA_HOME=/usr/j2sdk1.4.2; export JAVA_HOME
2. Instalar Tomcat
Obtenha e instale o Tomcat. Para obter o Tomcat, acesse o site do Projeto Apache Jakarta:
Download: http://jakarta.apache.org/site/binindex.cgi Informao: Tomcat 5 Setup & RUNNING.txt: Tomcat 4 Instalao e Ativao Home-Page: http://jakarta.apache.org/tomcat/
Quando este tutorial foi editado, as verses estveis mais recentes eram Tomcat 5.0.27 (APIs Servlet 2.4 e JSP 2.0, do J2EE 1.4) e Tomcat 4.1.30 (APIs Servlet 2.3 e JSP 1.2, integrantes do J2EE 1.3). O download do instalador para Windows pode ser acessado no site primrio em jakartatomcat-5.0.27.exe e jakarta-tomcat-4.1.30.exe, respectivamente. A pgina principal de download apresenta todas as alternativas de verses e mirrors (locais de download). O Tomcat exige um JDK instalado. Tomcat 5 Windows - Importante: Quando a varivel de ambiente JAVA_HOME no est corretamente definida, o instalador costuma detectar incorretamente o JRE (Java Runtime, tambm instalado junto com o JDK), cuja localizao padro similar a C:\Arquivos de programas\Java\j2re1.4\, ao invs de detectar o SDK completo, normalmente localizado em algo como C:\j2sdk1.4\, conforme o destino definido na instalao do JDK. No passo "Java Virtual Machine path selection" do instalador, certifique-se de informar o caminho correto do Java SDK. Na instalao Windows, a seleo de componentes personalizada (Custom) permite instalar e ativar o Tomcat como servio no Windows NT/2000 ou superior, pelo item "Service". No Tomcat 5, o servio sempre instalado e o item "Service" apenas escolhe a sua ativao automtica na inicializao do Windows. O diretrio principal (local de instalao) do Tomcat referenciado posteriormente neste tutorial como CATALINA_HOME. Na documentao e scripts do Tomcat, esse diretrio tambm referenciado assim, pois Catalina o nome-cdigo do projeto Tomcat e seu servlet container.
O separador de diretrios usado aqui a barra-invertida padro do Windows (\); para usurios Unix/Linux, deve-se substituir pela outra barra (/).
2.1. Instalar Tomcat 5 para Windows 2.2. Instalar Tomcat 4.1 para Windows
[Windows] Para iniciar, parar e reiniciar o Apache Tomcat, quando instalado como servio, bem como configurar o tipo de ativao do servio como Manual ou Automtico, utilize o Gerenciador de Servios do Windows em: Iniciar > Configuraes > Painel de Controle > Ferramentas Administrativas > Servios (ver imagem). Atravs do prompt de comandos, pode-se tambm iniciar e parar o servio: Tomcat 5
o o
Iniciar: net start "Apache Tomcat" Parar: net stop "Apache Tomcat"
Tomcat 4.1 Iniciar: net start "Apache Tomcat 4.1" Parar: net stop "Apache Tomcat 4.1" [Windows] Para iniciar e parar o Tomcat manualmente como processo, existem atalhos em: Iniciar > Programas > Apache Tomcat. Use o atalho "Start Tomcat" para iniciar o Tomcat; e "Stop Tomcat" para finalizar. Para iniciar e parar o Tomcat como processo pelo prompt de comandos (shell) do sistema operacional:
o o 1.
defina as variveis de ambiente JAVA_HOME e CATALINA_HOME, para apontar o diretrio principal da instalao do Java SDK e do Tomcat, respectivamente. O recomendado criar o script setenv.bat [Windows] / setenv.sh [Unix] dentro de CATALINA_HOME\bin, com estas configuraes (veja item 13 deste tutorial);
v para o diretrio bin do Tomcat: [Windows] cd %CATALINA_HOME%\bin [Unix] cd $CATALINA_HOME/bin 3. execute o script desejado: Iniciar: [Windows] startup.bat ou catalina start [Unix] startup.sh ou catalina.sh start Parar: [Windows] shutdown.bat ou catalina stop [Unix] shutdown.sh ou catalina.sh stop
2.
Um erro comum ter o Tomcat j iniciado como servio e tentar inici-lo novamente, como processo. O processo no conseguir ser iniciado, acusando que j existe algum servidor utilizando a sua porta. Neste caso, obviamente seria necessrio antes parar o servio, se realmente fosse desejado iniciar o Tomcat como processo. Quando o Tomcat iniciado como processo console, abre-se uma janela console (modo-texto). Mantenha a janela aberta e no feche manualmente. A janela console fecha automaticamente quando acionado o comando de encerrar o processo (Shutdown do Tomcat). No Tomcat 5, o processo iniciado pelo atalho "Start Tomcat" grfico e cria na rea de notificao da barra de tarefas do Windows (ao lado do relgio) um pequeno cone (ver imagem). Este cone d acesso a um menu de contexto com opes "Console Monitor", para visualizar mensagens informativas e de erro do servidor, e "Shutdown", para encerrar o Tomcat. Quando executado como servio, o Tomcat no exibe este cone.
4. Testar Tomcat
Para testar se o Tomcat est rodando ok aps iniciado, abra o browser e v para o endereo: http://localhost:8080/ Na home-page padro do Tomcat, o link "Tomcat Documentation" d acesso a toda a documentao necessria, instalada localmente, inclusive a API Servlet/JSP da Sun, inclusa com o Tomcat. O Tomcat inclui ferramentas via interface Web para administrar e gerenciar o servidor, bem mais amigveis do que editar arquivos de configurao. O instalador Windows solicita o login de usurio (padro admin) e a senha para acesso a estes recursos. Para utilizar estas ferramentas, acesse a home-page padro do servidor e siga os seguintes links, no quadro "Administration": Tomcat Administration Permite criar, excluir e configurar Servios e seus elementos internos (Connector, Host, Alias, Context, Logger, Valve) do Servidor Tomcat, bem como Recursos (Data Source etc.) e Autorizaes (User, Group, Role). Estes itens correspondem aos elementos e atributos disponveis no arquivo de configurao server.xml.
Tomcat Manager Permite gerenciar as aplicaes iniciar, parar, re-iniciar, fazer deploy (distribuio) e undeploy bem como monitorar o estado do servidor. Se voc ainda no entende bem a estrutura e caractersticas da configurao de um servidor de aplicao web Java como o Tomcat, no altere nada sem saber. Voc pode contudo acessar a ferramenta de Gerenciamento (Tomcat Manager), fornecer o login e senha do usurio administrativo configurado na instalao e visualizar o Estado do Servidor, que apresenta uma srie de informaes tcnicas sobre o funcionamento do servidor Tomcat.
dirdev\
o WEB-INF\ (diretrio obrigatrio) src\ (os fontes .java ficam aqui) classes\ (os .class gerados devem ser direcionados para aqui) lib\ (pacotes jar de bibliotecas utilizadas devem ficar aqui) web.xml (arquivo XML de configurao do contexto)
o o
(aqui entram os JSPs; podem ser criados sub-diretrios) index.jsp (home-page do mdulo Java web), ou um index.html
Vamos supor que seu "dirdev" C:\dir\dev\. Nota: Quando se usa um IDE de desenvolvimento Java avanado (como Eclipse, NetBeans, JBuilder etc.) em projetos grandes, comum ser definida uma estrutura mais complexa para cada projeto, em geral separando os fontes do mdulo web. Este tutorial porm se baseia na estrutura simples sugerida.
A tarefa aqui consiste em criar no Tomcat um novo contexto de aplicao web, para seu ambiente de desenvolvimento. Voc pode fazer isso pela ferramenta de Administrao com interface Web do Tomcat, ou editando o arquivo de configurao. Existem ainda outras formas de configurao automtica de um contexto de aplicao web, como o arquivo META-INF/context.xml de um Web Application Archive (WAR), ou com o Deployment Automtico do Tomcat. Para mais informaes, veja a documentao de Server Configuration Reference do Tomcat. Tomcat 5 - Criando o arquivo dev.xml: O arquivo deve ficar em: CATALINA_HOME\conf\Catalina\localhost\dev.xml A partir do Tomcat 5, no mais recomendado criar tags de contexto dentro de um elemento Host diretamente no arquivo server.xml, embora este procedimento (como descrito para o Tomcat 4) continue funcionando. No Tomcat 5, voc pode (e deve) armazenar configuraes de contexto em arquivos individuais, com a extenso .xml, dentro de CATALINA_HOME/conf/Catalina/localhost/. Catalina o mecanismo e localhost (mquina local), o hostname padro. Este novo meio permite reconfigurao dinmica da aplicao web, uma vez que o arquivo de configurao principal conf/server.xml no pode ser relido a no ser reiniciando o Tomcat. Alm disso, um arquivo separado mais simples e evita o risco de alterar incorretamente o server.xml. Crie o arquivo dev.xml na localizao j descrita, com o contedo do quadro a seguir. O contedo a definio do Context e seu Logger, precedida pela tag de identificao de arquivo XML:
<?xml version="1.0" encoding="iso-8859-1"?> <Context path="/dev" docBase="C:\dir\dev" debug="0" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_dev_log." suffix=".txt" timestamp="true" /> </Context>
Tomcat 4 - Editando diretamente o arquivo server.xml: O arquivo fica em: CATALINA_HOME\conf\server.xml Tenha cuidado ao editar diretamente o server.xml. Ele tem uma estrutura certa e muito bem definida. Uma tag inserida em local incorreto ser ignorada pelo servidor, e um erro de sintaxe introduzido no arquivo pode tornar toda a configurao invlida e o servidor inoperante. altamente recomendvel fazer uma cpia de segurana do arquivo server.xml original, antes de edit-lo. Adicione no server.xml o cdigo a seguir que define o novo contexto, no escopo dentro do elemento Host para localhost. No arquivo padro instalado pelo Tomcat 4, para localizar um ponto adequado onde inserir esta definio, procure pelo comentrio iniciado com "<!-- Define properties for each web application" (logo aps a
tag Logger da localhost) e crie seu contexto logo abaixo do fim desta tag de comentrio ( --> ).
... <Host name="localhost" ...> ... <Context path="/dev" docBase="C:\dir\dev" debug="0" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_dev_log." suffix=".txt" timestamp="true" /> </Context> ... </Host> ...
Tomcat 4/5 - Pela Tomcat Administration Tool: 1. Abra a ferramenta Tomcat Administrator via web e fornea o login (padro: admin) e senha do usurio administrativo, conforme configurado durante a instalao. 2. No navegador em rvore do frame esquerda, escolha: Tomcat Server > Service (Catalina) > Host (localhost). 3. No frame principal direita: Host Actions > Create New Context. 4. Preencha os atributos do novo contexto conforme o quadro do tpico anterior, que apresenta o cdigo da tag Context. 5. Crie a seguir, dentro do novo contexto, um Logger para gerar arquivos de log separados para sua aplicao. Considere os atributos tambm com base no mesmo quadro.
<servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> </web-app>
Tomcat 4: A configurao do servlet invoker j vem pronta no arquivo global conf/web.xml. No arquivo web.xml de seu contexto, basta mape-la para o caminho /servlet.
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Desenvolvimento</display-name> <description> Descritor do contexto de desenvolvimento. </description> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> </web-app>
7. Ativar contexto
Para ativar o novo contexto criado, reinicie o Tomcat (stop/start).
8. Testar contexto
Para testar o novo contexto, acesse o endereo: http://localhost:8080/dev/ Se voc criou um index.html no diretrio de desenvolvimento (C:\dir\dev\), voc deve ver esta pgina. Seno, ver apenas uma listagem do diretrio gerada pelo Tomcat.
9. Bibliotecas Servlet
Para compilar servlets, voc precisa essencialmente importar os pacotes javax.servlet e javax.servlet.http. As bibliotecas com estes pacotes tambm esto inclusas como JAR no Tomcat e devem ser adicionadas ao CLASSPATH do compilador javac: Tomcat 5:
CATALINA_HOME\common\lib\servlet-api.jar CATALINA_HOME\common\lib\jsp-api.jar
Tomcat 4:
CATALINA_HOME\common\lib\servlet.jar
onde CATALINA_HOME o diretrio principal de instalao do Tomcat. Se voc tem o J2EE SDK da Sun instalado, pode alternativamente usar o j2ee.jar incluso com ele, que contm todas as APIs do J2EE inclusive Servlet/JSP, claro. Mas o mais simples usar o(s) jar(s) do Tomcat. Isso garante total compatibilidade entre a verso das APIs Servlet/JSP usadas no desenvolvimento e no seu Tomcat. Alm disso, se o cdigo Java de uma classe servlet sua importar pacotes ou classes de uma biblioteca de terceiros (que no seja parte das APIs J2SE e Servlet/JSP), o JAR com as classes compiladas desta biblioteca deve estar no diretrio WEB-INF\lib\ para que o Tomcat encontre.
pode abrir uma janela de comandos (prompt) neste local, certificar-se que o CLASSPATH est devidamente configurado conforme o item 9 deste tutorial, e executar o compilador javac, direcionando o destino para WEB-INF/classes:
javac -d ../classes AloMundoServ.java
Depois que um servlet for compilado e o .class resultante colocado em C:\dir\dev\WEB-INF\classes\, com as configuraes de mapeamento servlet genrico que fizemos no contexto, voc acessa seu servlet com o URI /dev/servlet/NomeDaClasseServlet (sem o .class). Para o exemplo compilado AloMundoServ.class, acesse o servlet com o seguinte URL: http://localhost:8080/dev/servlet/AloMundoServ Podem ser criados, no web.xml, outros mapeamentos especficos para uma ou mais servlets. Para isso, voc deve conhecer a sintaxe dos elementos <servlet> e <servlet-mapping>.
O JRE no inclui as ferramentas de compilao Java, necessrias para a compilao dinmica de pginas JSP novas ou modificadas. Da o erro. Para solucionar, re-configure ou re-instale o Tomcat informando o caminho correto do Java SDK (JDK), ou ento recorra alternativa sugerida na mensagem de erro: copie manualmente o arquivo lib/tools.jar do JDK para o diretrio common/lib do Tomcat e re-inicie o Tomcat (shutdown/start).
12. Logs
Para ver logs de acesso, erro e depurao, leia os txt's gerados em:
CATALINA_HOME\logs\
Quando existirem muitos arquivos de log no Tomcat de desenvolvimento e voc quiser limpar o diretrio para facilitar o rastreamento dos logs, pode: 1. Parar (stop) o Tomcat. 2. Remover todos os arquivos de log existentes em CATALINA_HOME\logs\, ou movlos para uma rea de backup. 3. Iniciar (start) novamente o Tomcat. Inspecionar as mensagens de sada informativas e de erro do Tomcat importante para depurar e fazer diagnstico do servidor, como identificar problemas na inicializao do Tomcat, acompanhar o processamento dos arquivos de configurao (server.xml, web.xml) e da inicializao e finalizao do Tomcat, bem como visualizar quaisquer excees levantadas. Tomcat 5 Windows como Processo grfico O menu de contexto que se abre clicando-se (boto direito do mouse) no cone do Tomcat na rea de notificao do Windows (ver imagem) permite abrir o "Console Monitor", onde so exibidas as mensagens informativas e de erro do servidor (ver imagem). Tomcat como Processo console Na janela de console so exibidas as mensagens da sada padro (stdout) e de erro (stderr). Tomcat como Servio Windows ou com Arquivos de log Por padro, as mensagens informativas (sada padro) e de erro do servidor Tomcat so direcionadas para os arquivos stdout.log e stderr.log, respectivamente, localizados em CATALINA_HOME\logs\.
Caminhos (diretrios) de localizaes de executveis no sistema operacional, deve incluir o diretrio bin das ferramentas do Java SDK. Windows (Painel de Controle ou arquivo autoexec.bat), ou criar um script setenv.bat:
set set set set set JAVA_HOME=C:\j2sdk1.4.2_05 CATALINA_HOME=C:\Arquiv~1\Apache~1\Tomcat 5.0 CLASSPATH=%CATALINA_HOME%\common\lib\servlet-api.jar;.;%CLASSPATH% CLASSPATH=%CATALINA_HOME%\common\lib\jsp-api.jar;%CLASSPATH% PATH=%JAVA_HOME%\bin;%PATH% Linux/Unix (user/system profile), ou criar um script setenv.sh: JAVA_HOME=/usr/j2sdk1.4.2_05 CATALINA_HOME=/usr/tomcat CLASSPATH=$CATALINA_HOME/common/lib/servlet-api.jar:.:$CLASSPATH CLASSPATH=$CATALINA_HOME/common/lib/jsp-api.jar:$CLASSPATH PATH=$JAVA_HOME/bin:$PATH # Sintaxe Bourne shell (sh), Korn shell (ksh), Bash e similares: export JAVA_HOME CATALINA_HOME CLASSPATH PATH
Obs: Modifique os caminhos JAVA_HOME e CATALINA_HOME de acordo com os locais de instalao em seu computador. Para Tomcat 4.1, a biblioteca a ser includa no CLASSPATH apenas servlet.jar, conforme visto no item 9 deste tutorial.
Documentao do Tomcat, acessvel on-line em http://localhost:8080/tomcat-docs/, ou off-line (arquivos HTML em disco) em CATALINA_HOME\webapps\tomcatdocs\index.html o Configuration
Reference, com toda a sintaxe do arquivo de configurao do servidor Tomcat conf\server.xml: config/ o Servlet/JSP Javadocs, inclui convenientemente toda a API Servlet e JavaServer Pages (JSP) da Sun correspondente verso implementada pelo Tomcat: servletapi/ e, em separado a partir do Tomcat 5 (JSP 2.0), jspapi/. Exemplos prontos para executar, com cdigo-fonte Tomcat 5:
o o
Tomcat 4:
o o
15. E agora?
Terminada a instalao do software, est aberta a sua temporada de desenvolvimento Java para web. A tecnologia e as informaes envolvidas na programao so assuntos muito mais abrangentes e no esto no escopo deste tutorial. Para desenvolver em Java para web, voc deve ter bons fundamentos dos seguintes tpicos essenciais:
orientao a objetos; programao Java e API J2SE; arquitetura e mecanismos de sistemas web; HTML, CSS e JavaScript; Java Web = Servlets, JSP e JavaBeans (no-enterprise).
padres de modelagem (design patterns); taglibs em JSP; metodologia Modelo-Viso-Controle (MVC), Jakarta Struts; JavaServer Faces (JSF); Enterprise JavaBeans (EJB); mapeamento objeto-relacional.
Se voc ainda no tem domnio dos tpicos essenciais, recomendo um bom curso (ou cursos), em sala de aula, e a leitura de bons livros. O mesmo vale para os tpicos mais avanados. H ainda muitas referncias disponveis na web e uma boa quantidade de grupos de usurios e listas de discusso sobre Java, inclusive no Brasil. Para produtividade, importante tambm um bom ambiente integrado de desenvolvimento (IDE). A ferramenta mais usada, e gratuita, o Eclipse. Mas h tambm os bons NetBeans, Borland JBuilder, Oracle JDeveloper e o IntelliJ IDEA, para citar alguns. Mas nenhuma ferramenta vai dispensar o conhecimento da arquitetura J2EE e da tecnologia envolvida. Por fim, existem tpicos avanados sobre Tomcat no abordados por este tutorial, como:
distribuio e publicao (deployment) de aplicaes web; integrao com servidores web/HTTP, como Apache e IIS; configurao e calibrao do Tomcat para ambientes de produo e alto desempenho.
Apache Tomcat Projeto Apache Jakarta: Tomcat Servlet/JSP Container Jakarta Commons - Daemon: daemons (jsvc para Unix) e servios (Win32) baseados em Java
Sun Java Servlet Sun JavaServer Pages (JSP) JavaServer Pages Standard Tag Library (JSTL) Referncias sobre JavaServer & J2EE
Especificaes Servlet/JSP
JSR-152: JavaServer Pages 2.0 Specification JSR-053: Java Servlet 2.3 and JavaServer Pages 1.2 Specifications JSR-052: JavaServer Pages Standard Tag Library (JSTL) Specification 1.1 JSR-052: JavaServer Pages Standard Tag Library (JSTL) Specification 1.0
Informao sobre Java Referncias sobre Programao Java: sites, grupos de usurios, ferramentas, APIs, livros, certificao