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!!
|