Vous êtes sur la page 1sur 16

ImplementandoServidorWebJavacomTomcatno Linux

ImagemcustomizadaporBeatrizAnsani

Por:JosCleydsonFerreiradaSilva Twitter:@cleysinhonv

Sumrio

1. Introduo 2. ConfigurandoambienteJavanoSistemaOperacionalLinux 3. ProcedimentosparaainstalaodoTomcat 4. DiretrioesubdiretriosdoTomcat 5. ProcedimentosdeconfiguraodoTomcat 5.1Configurandousurios 5.2Configurandooservidor 5.3Configurandoocontexto 5.4Configuraesfundamentais

ImplementandoServidorWebJavacomTomcatno Linux
1.Introduo AtecnologiaJavaTMhalgumtempotemsidoaprincipalescolhadomercadode TIparaodesenvolvimentodesistemasdistribudos. Segundo a empresa TIOBE Software, em sua pesquisa para acompanhar as linguagens de programao no mercado, designando o ndice TIOBE (pesquisa), de Novembrode2009,oJavaaindaalinguagemmaispopularparaodesenvolvimentode sistemas. Javaumaplataforma rica,que permite odesenvolvimentode aplicaespara dispositivosmveis,bemcomo,celularesePDAs,ataplicaescorporativascomplexas, baseadasemwebservices,passandoaindaporaplicaesdesktopediscosBluray. AtecnologiaJavaTMdivididaemseguimentos:JSE(JavaStandardEdition),que umaversopadrodojavautilizadonaprogramaodeaplicaesparadesktop,JEE (JavaEnterpriseEdition)fortementevoltadaparaaplicaeswebeaplicaesdistribudas e JME (Java Micro Editon) para computadores com pouco recurso computacional, geralmenteutilizadaemdispositivosmveis.OJEEpossui,paraodesenvolvimentode sistemascorporativos, APIs(InterfacedeProgramaodeAplicativos),quepossibilitam seuusopormeiodaweb.Considerandoessecontexto,necessrioumsoftwareque permitaqueaaplicaowebsejaexecutada.Umdossoftwares maisusadosparaesse fimo ApacheTomcat. Seudesenvolvimentoestsobaresponsabilidadeda Apache SoftwareFoundation,queodisponibilizacomoSoftwareLivreedeCdigoAberto.

2.ConfigurandoambienteJavanoSistemaOperacionalLinux Para que os programas javac (responsvel por compilar a aplicao) e java (responsvelporexecutaraaplicao)sejamreconhecidospeloshell,necessrioquea

variveldeambiente$PATHsejamodificada.Almdisso,tambmdeveserdefinidaa variveldeambiente$JAVA_HOME,quedeveapontarparaodiretrioondeoJDKfoi instalado.Paraisso,devemseradicionadasasseguinteslinhasaoarquivobash.bashrc, (lembrandoqueolocaldeinstalaodoJDKpodevariar,comonoexemploabaixo): Exemplo1 exportJAVA_HOME=/opt/java exportPATH=/opt/java/bin:$PATH

O pacote de instalao da Mquina Virtual Java est disponvel no site http://java.sun.com/javase/downloads/index.jsp. H dois tipos de arquivos binrios, um com extenso rpm.bin para distribuies Linux derivadas do Red Hat, outro com extenso.binparaasdemaisdistribuies. Aps fazer o download, faremos o processo de instalao do pacote. Para padronizaroprocessodeinstalaousaremosodiretrio/opt.Usaremosessediretrio comointuitodecentralizarsomenteumdiretrioparaojavanosistema,umavezqueao installopoderamosadicionloaodiretrio/usr/binmascasohajanecessidadede atualizaodeverso,acrescentarnovasbibliotecasoufazerbackup,odiretrio/optse tornarmaisacessvel. Parainiciaroprocessodeinstalao,copieoarquivojdk6u13linuxi586.binparao diretrio /opt, a execuo do mesmo se dar pelo comando sh seguido do nome do arquivo. Aps a compilao, um subdiretrio ser gerado no diretrio corrente com o mesmonomedoarquivobinrio,portanto,renomeieapastaparaonomejavae,em seguida,definanoPATHodiretrionoqualapastarenomeada"java"est;esseprocesso noumaconveno,somenteumaformadepadronizaodeinstalao.Noquadro1 temosopassoapassoparaainstalao. Quadro1 Comandosexecutadosnoterminal

//Copiarparadiretrio/opt #cpjdk6u13linuxi586.bin/opt/

//Executaroarquivo #shjdk6u13linuxi586.bin //Renomeardiretrio #mvjdk1.6.0_13java //Asduaslinhasabaixodevemseracrescentadasnoarquivobash.bashrc #vim/etc/bash.bashrc exportJAVA_HOME=/opt/java exportPATH=/opt/java/bin:$PATH //Testandovariveisdeambiente #echo$JAVA_HOME #echo$PATH

importantetestaravariveldeambienteapsdefinila,poiselasreconhecida aps sair da sesso atual. Em seguida, ao abrir uma nova sesso, podemos usar o comandoechonasvariveisdeambiente.Destamaneirapadronizada,seuambienteJava estprontoparaserusado. 3.ProcedimentosparaainstalaodoTomcat OTomcatumServidorWebJava,capazdeprocessaraplicaesjavaservelets, que so responsveisporgerenciardinamicamente requisies de pedido e resposta, que,emmuitoscasos,soconsideradasextensesparaServidoresWebJava.OTomcat possuisuascaractersticasprpriasdeservidoresdeaplicaes,pormnodsuporte EJBEnterpriseJavaBeansparaaplicaesdistribudas. Sua verso atual a 6.0.20, lanada em 30 de Junho de 2008, pela Apache SoftwareFoundation,queatualmentemantmoprojeto.Podesefazerodownloaddo ApacheTomcatnositewww.tomcat.apache.org,nomenudownloadouutilizarocomando wget como mostrado no quadro 2, que detalha todo o processo de instalao. Apsterfeitoodownload,necessriodescompactaroarquivonodiretrioem que se ir trabalhar, ou seja, um diretrio padro que neste caso ser o /opt, como

fizemos na instalao do java. Aps descompactlo, para padronizar a instalao, renomeieodiretrioquefoicriadoparaonometomcat6.Odiretrio/opt/tomcat6consiste emdiversossubdiretrios,quecontmarquivosbinrios,bibliotecas,logs,subdiretrios dasaplicaesearquivosdeconfiguraes. Por padro, o daemon de inicializao est no diretrio /bin com o nome catalina.sh.Como estamospadronizandoainstalao,teremosquecriarumscriptpara que,aoinicializarosistemaoperacional,oservioHTTPnaporta8080sejainicializado. Oquadro2mostraaformadeinstalaodoTomcat. Quadro2 ComandosparaainstalaodoTomcat //Entrarnodiretrio/opt #cd/opt //Fazerdownloaddentro #wgethttp://linorg.usp.br/apache/tomcat/tomcat6/v6.0.20/bin/apachetomcat6.0.20.tar.gz //Descompactararquivo #tarxvzfjapachetomcat6.0.20.tar.gz //Renomearapastadeapachetomcat6.0.20paratomcat6outomcat #mvapachetomcat6.0.20tomcat6 //Iniciarotomcat/opt/tomcat/bin/catalina.sh #sh/opt/tomcat6/bin/catalina.shstart //Testartomcat(testedefuncionamento) #http://localhost:8080/

necessriaacriaodeumscriptparaainicializaodoprograma,quandoo sistema operacional for inicializado. Este script dever permanecer dentro do diretrio /etc/init.d, onde ser criado um link nativo para todos os diretrios da runlevel de inicializao.Tambmpodersercolocadonainicializaopadro.

Parasaberarunlevelpadroqueosistemaestutilizando,bastaexecutaro comandorunlevelnoterminal,oucasoqueiraadicionloemtodososdiretriosde inicializao,usaseocomandoupdaterc.d. Para que no seja necessrio iniciar o tomcat todas as vezes que desligar ou reiniciarocomputador,foielaboradooseguintescriptparainicialotodasasvezesque essefatoocorrer: Quadro3 ComandoparascriptdeinicializaodoTomcat //criarumarquivono/etc/init.d/ #touchtomcat //Adicionarotextoabaixo #!/bin/sh echoInicializatomcat exportJAVA_HOME=/opt/java /opt/tomcat6/bin/catalina.shstart //Mudarapermissodeexecuo #chmod+xtomcat //Adicionaroscriptnarunleveldosistema #updaterc.dtomcatdefaults99 //Adicionaroscriptnarunlevelpadro(NoDebian,Ubuntu) #lnntomcat/etc/rc2.d/S99tomcat

4.DiretrioesubdiretriosdoTomcat Assimcomoosdiversossoftwaresquepossuemumarquivodeconfigurao,no h diferena com o Tomcat. Por padro, os arquivos de configurao do Sistema Operacional Linux esto alocados em um nico diretrio que contm subdiretrios de cadaprograma,quedefatoo/etc.Umexemplodesubdiretrioclssicoeconhecidoem

distribuiesderivadasdoDebiano/etc/apache2/,diferentedasdistribuiesderivadas doRedHatqueseencontramem/etc/httpd.conf. Conformeopadrodeinstalaoqueusamos,odiretrio/opt/tomcattornouseum local onde concentramse todos os seus subdiretrios e arquivos, podendo assim proporcionaraoadministradordosistemaumamelhormanipulaodomesmoemrelao ao software que usa diversos subdiretrios do sistema. As vantagens desse sistema podemconsistiremnosomentefacilitarparaousuriomasemoutrasrotinasdirias, comobackupecentralizaodosarquivosediretriosqueporsuavezpoderiamestarem umapartioseparada. No diretrio /opt/tomcat/ esto todos os subdiretrios necessrios para os seu funcionamento;abaixohumabreveexplicao: /bin Neste local encontramse os arquivos binrios do sistema, bem como o arquivo que permiteparareinicializarosistema,chamadocatalina.sh.Paraexecutlobastaadicionar 2 parmetros, um antes do nome do arquivo e outro indicando qual a ao a ser realizada,sepraoservioouoiniciao,conformeocomando:shcatalina.shstart. /lib Todas as bibliotecas esto armazenadas neste local, podendo ser as bibliotecas das aplicaesquesodesenvolvidasoubibliotecasdoTomcat,incluindodriveJDBCpara conexocombancodedados. /logs OapacheTomcatregistratodasasaeseexecuesdasaplicaes.Nestediretrio esto armazenados informaes de logs, bem como, execuo das aplicaes, instalao,errosdeacesso,requisiodeconexoeentreoutros. /temp Consisteemumsubdiretrioparaalocarusodearquivostemporriosdasaplicaes. /webapps Considerandooclssico/var/wwwqueoapacheutiliza,osubdiretrio/webappspossuio mesmofundamento:ArmazenarasaplicaesqueseroexecutadaspeloTomcat.Por

padro,dentrodomesmo,harquivosdoprprioprogramaealgunsexemplosdejspe servelets.Casoqueiratestlos,acessewww.localhost:8080. /conf Esse diretrio, em especial, o mais usado, pois nele se encontram os arquivos de configurao, bemcomo configurao de usurio, do servidor e do componentes que sero executados. Cada aplicao ter um arquivo de configurao que por sua vez determinarapoliticadeexecuo.

5. ProcedimentosdeconfiguraodoTomcat 5.1 Configurandousurios Umdosprimeirosprocedimentosaseremtomadosnaconfiguraodoprograma adefiniodeusurios,poisaadministraodosistemaouprogramadependerdesse ajuste para instalar qualquer sistema ou programa que ser executado pelo Tomcat. EmboraaotestaroseufuncionamentoeperceberqueoTomcatestfuncionando,como mostra a ltima linha do quadro 2 (www.localhost:8080), de extrema importncia a definiodafunodecadausurio. Basicamente, os usurios podem desempenhar diferentes papis, como administradordoTomcat,gerenteeusuriocomum,queserousadospelasaplicaes Java.Oarquivodeconfiguraoencontraseem/opt/tomcat/conf,conformeopadrode instalaodestedocumento; casootenhainstaladopelomirrorpadrodeseussistema operacional,podendoserdalinhaDebian,odiretrioser/etc/tomcat6.Oarquivoest nomeadocomotomcatusers.xml. Sua configurao consiste em definies de usurio, senha e qual papel ser atribudoparaesteusurio.Comojmencionadoospapis,ouseja,afunoquecada umpodedesenvolver,atribudapeloparmetrorolenamedentrodatag<role>,que,por sua vez, se encontra dentro da tag <tomcatusers>; por padro, aconselhase definir primeiramenteospapise,emseguida,osusurios. Atag<user>defineosusurios,senhasefuno,comosparmetrosusernamee password,comovistonoexemplo2. Exemplo2

Modelodearquivodeconfiguraodeusurio <tomcatusers> <!Comentriosofeitosassim> <rolerolename="tomcat"/> <rolerolename="role1"/> <rolerolename="manager"/> <rolerolename="users"/> <rolerolename="admin"/> <userusername="tomcat"password="tomcat"roles="tomcat"/> <userusername="tomdeployer"password="senha"roles="manager"/> <userusername="cleysinhonv"password="senha"roles="users"/> <userusername="cleydson"password="cleydson"roles="admin,manager"/> <userusername="both"password="tomcat"roles="tomcat,role1"/> <userusername="role1"password="tomcat"roles="role1"/> </tomcatusers> Osusuriosquecontmpapelmanagerpossuemprivilgiospararealizaraes juntamentecomoTomcat,comoiniciaraplicaeseconfiguraesnosdiversosarquivos deconfiguraoefazeraimplantaodasaplicaesnoservidor.Asfunes(papis) dosusuriosTomcaterole1sopadresdosistema,seporventuranoasencontrarao abriroarquivo,adicioneas.Paraseorientar,useoexemplo2. 5.2Configurandooservidor Existemdiversasformasdeconfiguraroservidor.Emborasejainteressanteouat mesmonecessrioquesaibamostodasasopesdeconfigurao,nooobjetivodeste documentoapresentartodasasopes,massimumaconfiguraobsicaessencialpara ofuncionamento. O arquivo de configurao do servidor encontrase no mesmo diretrio da configurao do usurio. O arquivo referente configurao do servidor chamase server.xml; nele podese configurar quais portas sero utilizadas para a conexo, o

protocoloeoredirecionamentodeportas,dentreoutros.Essasopes,porpadro,j vmconfiguradas. Quandousamosumaaplicaocompactada,ouseja,emarquivo.war,necessrio fazer a configurao da tag <host> para que ela no seja descompactada ao ser instalada. Com isso preciso configurar o atributo unpackWARs para receber o valor false;assim,aoserreconhecidapeloprograma(Tomcat)elanoserdescompactada.O item1doexemplo3exibeaconfiguraodestatag.Autilizaodaextensodoarquivo warnoumaconvenovocpoderutilizlaemmododescompactado,pormpode estarexpostoaalgunserros.Casoescolhautilizlacomosubdiretrio,podercopiaro diretriodaaplicao(contexto)paraodiretrio/opt/tomcat6/webapps. Natag<connector>podemosconfiguraraportadeconexo,queporpadroa porta 8080, juntamente com o protocolo, tempo de conexo com servidor e redirecionamento de portas, dentre outras opes. Existem basicamente trs tipos de conectores:oHTTP,querespondearequisiesnaporta8080,oAJP,queabreconexo comoapachewebservernaporta8009e o HTTPS, queserefereconexosegura utilizandocertificadodigital. Podese configurar o servidor para fazer autenticao em um servidor LDAP, bastando,paraisto,configuraroserver.xml.Dentrodatag<Engine>podeseconfigurara tag<Realm>,sendonecessrioacrescentaratributosrelacionadoscomaurldeconexo do servidor e informaes de usurios, bem como usurio, papel do usurio, dentre outros. CasohajanecessidadedeconfiguraoparaautenticaocomLDAP,otrecho3 doexemplo3podeserusado. Exemplo3 Trechosdeconfiguraodoarquivoserver.xml

1.Tag<host> <Hostname="localhost"appBase="webapps" unpackWARs="false"autoDeploy="true" xmlValidation="false"xmlNamespaceAware="false">

2.TagConnector <Connectorport="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

3.AutenticaocomLDAP <RealmclassName="org.apache.catalina.realm.JNDIRealm" connectionURL="ldap://[LDAPHOST]:389" userBase="dc=uf??,dc=br" userRoleName="ObjectClass" userSearch="uid={0}" userSubtree="true" roleName="objectClass"/> 5.3Configurandoocontexto Toda aplicao desenvolvida a ser instalada no Tomcat necessita de uma configuraoemumarquivoweb.xml,queseencontradentrodosubdiretrio/WEBINF daaplicao.Podemosconfigurardentrodessearquivoasdescriesdosaplicativose suaexibio,bemcomoopath,DisplayName,sesses,dentreoutrasconfiguraes. Aconfiguraodestearquivopodeserfeitamanualmenteouautomaticamente,se usada a aplicao manager web do Tomcat (http://localhost:8080/manager/html). Geralmente, a instalao automtica, por padro, poder fazer algum tipo de configurao;mesmotendoissoafavor,podeseconfigurloconformeasindicaes.Ao desenvolveraaplicao,necessriocriarumarquivoweb.xmldentrodosubdiretrio /WEBINFdaaplicao.Elepoderpossuiromnimodeconfigurao,contendosomente otipodecharset,podendoserUTF8,quepadrodoSistemaOperacionalLinux. Para melhorar a configurao da aplicao, devese abrir uma tag <webapp> para colocar os atributos que podero configurla, pois, por padro, ao colocar uma aplicao no diretrio /opt/tomcat6/webapps, o Tomcat define o path, sendo preciso somenteconfiguraraexibiodonomedaaplicaoque,paraisso,configuraoatributo <displayname> apontando o nome e uma descrio da aplicao com o atributo <description>.Vejanoexemplo4ummodelodeconfiguraodestearquivoenafigura

abaixooresultadodaconfigurao.

Exemplo4 Configuraodoweb.xml <?xmlversion="1.0"encoding="UTF8"?> <!DOCTYPEwebappPUBLIC"//SunMicrosystems,Inc.//DTDWebAplication2.3//EN" "http://java.sun.com/dtd/webapp_2_3.dtd"> <webapp> <displayname>SistemadeTeste(Artigo)</displayname> <description> ExemplodeArquivoweb.xml. </description> </webapp> 5.4Configuraesfundamentais Outra configurao importante a configurao do uso de memoria RAM da mquinavirtualno Tomcat (quecomosabemos,inteiramentedesenvolvidoemJava) suainterpretaosedpormeiodamquinavirtualJava,que,porsuavez,farousoda memria exigindo um valor mnimo de 64MB por padro mas caso essa aplicao realizeumnmeroelevadodeacessosaumbancodedados,podercomprometero servio fazendo com que o processamento do servidor atinja o mximo do seu uso. Quando esse fato chega a acontecer, geralmente ocorrem erros de interpretao da maquinavirtualjavaeperdadoPATH,ocorrendoerrosdeinterpretaodo$JAVA_HOME Varivel de ambiente . Para isso, precisamos configurar a JVM (Maquina Virtual). Essa configurao deve ser feita no arquivo catalina.sh, que se encontra no diretrio/opt/tomCat6/bin.Asintaxedoscomandosaseremacrescentadosnestearquivo estomencionadosnoexemplo5item1.OparmetroXmx768Mindicaaquantidadede memria que a JVM (Mquina Virtual Java) ir usar. O parmetro

XX:MaxPermSize=256MindicaraoTomcataquantidadedememriaRAMdisponvela eleeosoutrossoparaconfiguraodehora,linguagemerefernciadefusohorrio. importantelembrarqueessasintaxedeveseradicionadaapsoscomentriosiniciaisdo arquivo,antecedendoosprimeiroscomandosdoscript. Essa configurao referese a uma quantidade de 1GB no total, que um computadorestejaporventurausando;casotenhamaisqueessaquantidadeoumenos, sigaaseguinteorientao:usar3/4dacapacidadedamemriaRAMparaoparmetro Xmx768Me1/4paraXX:MaxPermSize=256M. OutraobservaoimportantequeprecisasercolocadaaausnciadodriveJDBC dentrodapastalibdoTomcat.Casodeixedecolocarodrivenestapasta,suaaplicao no conseguir fazer uma consulta ou rotina na base de dados. O drive JDBC responsvel por todas as rotinas de interao com bases de dados relacionais. CadaSistemadeGerenciamentodeBandodeDadosSGBDpossuium drive JDBC que pode ser encontrado no site oficial da Sun (http://devapp.sun.com/product/jdbc/drivers)ounoprpriositedoSGBDqueestusando. Osarquivosdeconfiguraoqueajudaramnaelaboraodestedocumentoesto disponveisnositewww.vivaolinux.com,nasessoconf.Paramelhoracompanhamento na elaborao ou no teste de configurao os arquivos podem ser consultados ou baixadosnoseguintelink: http://www.vivaolinux.com.br/conf/userview.php?login=cleysinhonv Caso tenha necessidade de uma aplicao JSP para testar os procedimentos descritosnestedocumento,tambmestdisponvelnositewww.vivaolinux.com.br,uma aplicao simples desenvolvida por Hermes Jnior hnpjunior para teste deste documento.Odownloadpodeserfeitonolinkabaixo. http://www.vivaolinux.com.br/script/AplicacaosimplesJSTL Ao fazer o download do arquivo sistemaExibeJSTL.tar.gz, dever copialo para o diretrio/opt/tomcat6/webappsedescompactlo,usandoocomando: #tarxvzfsistemaExibeJSTL.tar.gz Paraacessaraaplicao,direcioneonavegadorparaaseguinteurl:

http://localhost:8080/sistemaExibeJSTL/paginas Nolinkabaixoestumascreenchotdofuncionamentodaaplicao http://www.vivaolinux.com.br/screenshot/GnometomCatmanagerweb/

Exemplo5 Configuraesgerais

1.ConfiguraodememriadaMquinaVirtualJava CATALINA_OPTS="Xmx768MXX:MaxPermSize=256M Duser.timezone=America/Sao_PauloDuser.language=ptDuser.country=BR"

Consideraesfinais

Sobreoautor Jos Cleydson Ferreira da Silva, graduando em Sistemas de InformaoFaculdadedeViosaMG. UsuriodoLinuxporfilosofia, acreditaqueoSoftwareLivreedeCdigoAbertopodemmudaraforma eomodelodemercadoatual.

Contatos Email,gtalk:cleysinhonv@gmail.com Twitter:@cleysinhonv Website:www.cleysinho.blogspot.com Website:www.gnulia.org Outrosartigos:http://www.vivaolinux.com.br/artigos/userview.php?login=cleysinhonv RefernciaBibliografica http://tomcat.apache.org/ http://pt.wikipedia.org/wiki/Apache_Tomcat http://luizgustavoss.wordpress.com/2009/02/06/visaogeraldatecnologiajava/

http://www.tiobe.com

Vous aimerez peut-être aussi