Hi All, Can some one tell me where to put the jsp precompilation build file(build.xml) in the Tomcat 7 structure. I have a web application called myapp which is inside webapps folder and has bunch of jsp files, I want to precompile them using the following script.
<project name="Webapp Precompilation" default="all" basedir="../../../"> <property name="tomcat.home" value="${basedir}"/> <condition property="java.home" value="/usr/local/java" else="C:/Program Files/java/jdk1.6.0_02" > <os name="Linux"/> </condition> <property name="webapp.path" value="${tomcat.home}/webapps/myapp"/> <property name="outputdir" value="${webapp.path}/build"/> <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}/bin"> <include name="*.jar"/> </fileset> <fileset dir="${tomcat.home}/lib"> <include name="*.jar"/> </fileset> </classpath> </taskdef> <jasper2 validateXml="false" uriroot="${webapp.path}" webxml="${outputdir}/WEB-INF/web.xml" webXmlFragment="${webapp.path}/WEB-INF/generated_web.xml" outputDir="${outputdir}/WEB-INF/src"> </jasper2> <java classname="org.apache.jasper.JspC" fork="true" dir="${outputdir}/WEB-INF/src"> <classpath refid="jspc.classpath" /> <arg line="-compile"/> <arg line="-l"/> <arg line="-s"/> <arg line="-webapp ${webapp.path}"/> <arg line="-source ${java.home}"/> </java> </target> <target name="compile"> <mkdir dir="${outputdir}/WEB-INF/classes"/> <javac destdir="${outputdir}/WEB-INF/classes" optimize="off" debug="on" failonerror="false" srcdir="${outputdir}/WEB-INF/src" excludes=" **/*.smap"> <classpath> <fileset dir="${tomcat.home}/lib"> <include name="*.jar"/> </fileset> <fileset dir="${tomcat.home}/bin"> <include name="*.jar"/> </fileset> </classpath> <include name="**" /> <exclude name="tags/**" /> </javac> </target> <target name="clean"> <delete dir="${outputdir}/WEB-INF"/> </target> <target name="all" depends="jspc,compile,clean"> </target> </project> Right now I have this build file called build.xml inside the build folder in myapp. So final structure is myapp has bunch of jsp files and a build folder with build.xml to precompile the jsps. When I run the above build.xml using ant I get the following error. BUILD FAILED C:\apache-tomcat-7.0.16\webapps\myapp\build\build.xml:29: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0 at java.util.Vector.get(Vector.java:694) at org.apache.jasper.JspC.execute(JspC.java:1286) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) at org.apache.tools.ant.Project.executeTarget(Project.java:1368) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1251) at org.apache.tools.ant.Main.runBuild(Main.java:809) at org.apache.tools.ant.Main.startAnt(Main.java:217) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Total time: 1 second I have debugged the jasper.jar code and identified that the build.xml is not finding the jsp files. Please correct me if I'm wrong . So my question what is wrong with my build.xml and why is that jasper 2 task not finding the jsp files and how to tell the jasper2 task about the jsp files. Thanks in Advance!!! Please Help me I am stuck and eagerly waiting for the reply!!