Páginas pré-compiladas no Tomcat

5 respostas
rvaldomiro

Srs,

Tenho uma aplicação WEB em um servidor Tomcat à qual empacoto em um arquivo .WAR sempre que disponibilizo uma nova versão para o cliente, o problema é que as páginas são compiladas a medida que são acessadas pelo cliente muitas vezes dando a impressão para o mesmo que o site está lento :frowning: Pergunto: existe alguma forma de empacotar todo o site já com as classes pré-compiladas evitando assim este tempo perdido no primeiro acesso???

Um abraço!!!

5 Respostas

pcalcado

Oi,

Dê uma olhada aqui.

[]s

rvaldomiro

Hummm, num entendí muito bem! Tenho que criar uma task Ant e rodar no site antes de liberar para produção é isso???

pcalcado

Ao criar seu WAR, você já manda suas páginas pré-compiladas, assim evita o trabalhod a primeira compilação :wink:

[]s

rvaldomiro

Pessoal me ajudem :cry: :cry: :cry:

Eu tenho 2 build files, 1 que cria o .WAR e outro para compilar as páginas conforme [url]http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jasper-howto.html[/url], o primeiro funfa direitinho e eu apenas o coloco no webaaps do tomcat e vai-que-vai e o código do segundo build file ficou assim:

<project name="Webapp Precompilation" default="all" basedir="."> 

	<property name="tomcat.home" value="C:/Arquivos de programas/Apache Software Foundation/Tomcat 5.0" />
	<property name="webapp.path" value="${tomcat.home}/webapps/unissul" />
	<property name="java.home" value="C:/Arquivos de programas/j2sdk1.4.1_03" />
	
	<target name="jspc"> 
    	<taskdef classname="org.apache.jasper.JspC" name="jasper2" > 
      		<classpath id="jspc.classpath"> 
	        	<pathelement location="${java.home}/lib/tools.jar" /> 
	        	<fileset dir="${tomcat.home}/server/lib"> 
	          		<include name="*.jar"/> 
	        	</fileset> 
	        	<fileset dir="${tomcat.home}/common/lib"> 
	          		<include name="*.jar"/> 
	        	</fileset> 
      		</classpath> 
    	</taskdef> 

    	<jasper2 validateXml="false" uriroot="${webapp.path}" 
			webXmlFragment="${webapp.path}/WEB-INF/generated_web.xml" 
        	outputDir="${webapp.path}/WEB-INF/src" /> 
	</target> 

  	<target name="compile">
    	<mkdir dir="${webapp.path}/WEB-INF/classes" />
    	<mkdir dir="${webapp.path}/WEB-INF/lib" />

		<javac destdir="${webapp.path}/WEB-INF/classes" optimize="off" debug="on" 
			failonerror="false" srcdir="${webapp.path}/WEB-INF/src" excludes="**/*.smap">
      		<classpath>
        		<pathelement location="${webapp.path}/WEB-INF/classes" />
        		<fileset dir="${webapp.path}/WEB-INF/lib">
          			<include name="*.jar" />
        		</fileset>
        		<pathelement location="${tomcat.home}/common/classes" />
        		<fileset dir="${tomcat.home}/common/lib">
          			<include name="*.jar" />
        		</fileset>
        		<pathelement location="${tomcat.home}/shared/classes" />
        		<fileset dir="${tomcat.home}/shared/lib">
          			<include name="*.jar" />
        		</fileset>
      		</classpath>
      		<include name="**" />
      		<exclude name="tags/**" />
    	</javac>
  </target>

  <target name="all" depends="jspc, compile" />
</project>

porém quando mando rodar dá o seguinte erro:

Buildfile: L:\Unissul\dist\compile\build.xml
jspc:
BUILD FAILED: L:\Unissul\dist\compile\build.xml:22: java.lang.ExceptionInInitializerError
Total time: 1 second

onde estou errando? alguém tem algum exemplo pronto de como fazer para compilar minhas páginas antes de colocá-las em produção???

Obrigado!!!

rvaldomiro

Alguém pode dar uma maozinha??? :cry:

Criado 15 de dezembro de 2004
Ultima resposta 3 de jan. de 2005
Respostas 5
Participantes 2