Departamento de Tecnologia e Design Engenharia de Software

Propaganda
Departamento de Tecnologia e Design
Engenharia de Software
Exercício Prático 3 – Ano lectivo – 2015 / 2016 – Engenharia Informática
Duração: 02:00 hh:mm – Docente: Jorge Machado
Exercícios com o servidor Apache Tomcat 5.5.
Ficheiro: Aula3TomcatAnt.zip
Notas:
 O Tomcat arranca como serviço ou em linha de comandos de duas maneiras
possíveis
o startup.bat / ou .sh
o catalina.sh run
 Ambos os ficheiros se encontram na pasta bin do tomcat. O startup arranca o
tomcat numa janela independente. O catalina.bat com o argumento run arranca
na própria janela e pode ser parado com um CTRL+C.
 Para correr o tomcat necessita de duas variaveis de ambiente definidas
o JAVA_HOME - pasta do jdk
o CATALINA_HOME - pasta do Tomcat
o Opcionalmente podem ser definidas variaveis de inicialização da
Máquina Virtual de Java na variavel de ambiente JAVA_OPTS
 Necessita ainda de ter a pasta bin do jdk na PATH.
 O exemplo que se segue demonstra um ficheiro típico para arrancar o Tomcat
em linha de comandos.
 A variavel JAVA_OPTS está aqui ja configurada num modo profissional de
execução como se explica de seguida
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
export CATALINA_HOME=/engsoft/aula3/jakarta-tomcat-5.5.27/
export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH
export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx800m -Xms800m -XX:PermSize=256m XX:MaxPermSize=1024m -server -Xdebug Xrunjdwp:transport=dt_socket,address=53599,suspend=n,server=y"
cd $CATALINA_HOME/bin/
./catalina.sh run
Para Windows
ESTG.SA
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_67
set CATALINA_HOME=C:\Users\jmachado\Desktop\aula3\apache-tomcat-5.5.27
set PATH=%JAVA_HOME%\bin;%PATH%
set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xmx800m -Xms800m XX:PermSize=256m -XX:MaxPermSize=1024m -server -Xdebug Xrunjdwp:transport=dt_socket,address=53599,suspend=n,server=y
cd %CATALINA_HOME%\bin
catalina.bat run
JAVA_OPTS
A variavel de ambiente JavaOpts é usada pelo tomcat quando executa o runtime do
java. O comando "java" executa uma aplicação em java e pode receber na linha de
comandos opções de ambiente como por exemplo:
java -XX:PermSize=256m teste.Teste
Esta opção em particular serve para definir o Heap máximo usado pelo sistema antes
de atirar uma excepção OutOfMemory.
Todas as opções em JAVA_OPTS vão ser colocadas pelos scripts de arranque do
Tomcat no comando java que corre da seguinte forma:
java $JAVA_OPTS org.apache.catalina.startup.Bootstrap
Este comando não é executado por nós. Mas fica a explicação de como funcionam as
JAVA_OPTS.
Para ver as hipóteses possíveis na JAVA_OPTS deve consultar a documentação
oficial do JAVA. Tem também algumas outras no ficheiro catalina.sh onde explicam a
variavel CATALINA_OPTS que tem o mesmo objectivo do JAVA_OPTS mas
apenas se aplica ao TOMCAT.
Neste caso estamos a usar as seguintes:





-Xmx - Memória de Heap Máxima
-Xms - Memória de Heap Mínima
-XX:PermSize - Memória Permanente Máxima - Variáveis que nunca saiem da memoria
-server - O sistema corre configurações optimizadas para modo servidor
-Xdebug -Xrunjdwp:transport=dt_socket,address=53599,suspend=n,server=y As restantes
configurações foram definidas pelo modo de debug do IntelliJ. Ao colocar o Intellij em modo d
debug com o tomcat é preciso dizer o porto do Tomcat e o Intellij fornece-nos estas
configurações para colocarmos na JAVA_OPTS para que o tomcat arranque um porto de
debug.
1.1. Configure o seu tomcat para arrancar em modo de linha de comandos como
exemplifica o script acima.
1.2. Prepare o seu projecto para correr o ANT em linha de comandos
> ant
ESTG.SA
1.3. Se não funcionar faça download do ANT1 e defina os seguintes comandos
para inicializar o ANT na janela onde se encontra.
Mac ou Linux
export ANT_HOME=PASTA_PARA_ANT/apache-ant-1.9.6
export PATH=PASTA_PARA_ANT/bin:$PATH
Windows
set ANT_HOME=PASTA_PARA_ANT/apache-ant-1.9.6
set PATH=PASTA_PARA_ANT/bin:%PATH%
1.4. O projecto aula3 vem preparado para correr a rotina "war". O nome da pasta
define o ContextPath da aplicação. Se o ficheiro chama-se exercicio1.war. Se
já tiver o tomcat a funcionar no momento em que corre o war, o tomcat vai
descomprimir para a pasta exercicio1 e arrancar a aplicação teste que poderá
ser acedida em http://localhost:8080/exercicio1/
1.5. Altere o war para se passar a chamar o nome que está definido na variavel
web.app. Tem instruções no build sobre como o fazer. Descubra um bug que
ocorre porque o ant tenta ir buscar o ficheiro a build/ant/projecto.war. Onde
está o projecto.war? Corrija o problema.
1.6. O ficheiro ANT vem com uma rotina para fazer deploy automático da
aplicação no Tomcat em vez de usar um copy paste normal. Siga o exemplo e
altere o ANT para fazer deploy.
1.7. Se tudo está a correr como esperado deverá aparecer um erro 401 de
permissão negada. O Tomcat não o deixa chamar rotinas de gestão. É
necessário configurar um utilizador no tomcat. Abra o ficheiro apachetomcat-5.5.27/conf/tomcat-users.xml
1.7.1. Adicione uma linha role com o valor "manager"
1.7.2. Adicione uma linha de password e username para o role manager
1.7.3. Reinicie o Tomcat, faça de novo deploy
1.8. Tente agora definir a rotina deploy context usando o material fornecido em
comentário no build.xml
1.8.1. Defina a tarefa de install pois não vem no catalina.tasks
1.8.2. Crie um ficheiro de contexto manualmente
1
http://www-us.apache.org/dist//ant/binaries/apache-ant-1.9.6-bin.tar.gz
ESTG.SA
1.8.3. Defina o target de deployContext copiando-o da zona de comentário
1.8.4. Corra ant tomcat.deployContext
ESTG.SA
Download