Hi,

in our deployment scripts we precompile jsps for live deployment.
However, we are in the process of switching from 5.0.x to 5.5.16 and
the precompilation fails.
I've searched the net and checked the 5.5 docs but haven't found any hints.

Here's the exception:

[EMAIL PROTECTED]:~/bin/testsystem$ ant -f build_web.xml
Buildfile: build_web.xml

jsp:
     [echo] /home/frs/test_web_tomcat
     [echo] /usr/local/jdk1.5.0_06_32bit/jre
     [echo] /usr/local/jdk1.5.0_06_32bit/jre
     [echo] Generating java files out of root jsps
  [jasper2] java.lang.IllegalStateException: No Java compiler available
  [jasper2]     at
org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:224)
  [jasper2]     at org.apache.jasper.JspC.processFile(JspC.java:979)
  [jasper2]     at org.apache.jasper.JspC.execute(JspC.java:1135)
  [jasper2]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  [jasper2]     at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  [jasper2]     at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  [jasper2]     at java.lang.reflect.Method.invoke(Method.java:585)
  [jasper2]     at
org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:123)
  [jasper2]     at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
  [jasper2]     at org.apache.tools.ant.Task.perform(Task.java:364)
  [jasper2]     at org.apache.tools.ant.Target.execute(Target.java:341)
  [jasper2]     at org.apache.tools.ant.Target.performTasks(Target.java:369)
  [jasper2]     at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
  [jasper2]     at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
  [jasper2]     at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
  [jasper2]     at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
  [jasper2]     at org.apache.tools.ant.Main.runBuild(Main.java:668)
  [jasper2]     at org.apache.tools.ant.Main.startAnt(Main.java:187)
  [jasper2]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
  [jasper2]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)

BUILD FAILED
/home/frs/bin/testsystem/build_web.xml:41:
org.apache.jasper.JasperException: No Java compiler available


and here's the buildfile:
<project name="datingr4p1" default="jsp" basedir=".">

<property name="tomcat.home" location="/home/frs/test_web_tomcat"/>
<property name="root.classes"
location="${tomcat.home}/work/Catalina/localhost/_/"/>
<property name="root.src" location="${tomcat.home}/webapps/ROOT"/>


<target name="jsp">
    <!--
         The Ant JSPC task doesn't work with Tomcat 5.0
         so in the meantime we need to define our own task.
      -->
    <echo>${tomcat.home}</echo>

    <echo>${java.home}</echo>
    <property name="java.home" location="/usr/local/java"/>
    <echo>${java.home}</echo>
    <taskdef classname="org.apache.jasper.JspC" onerror="report" name="jasper2">
        <classpath id="jspc.classpath">
            <pathelement location="/usr/local/java/lib/tools.jar"/>
            <fileset dir="${tomcat.home}/common/lib">
                <include name="*.jar"/>
            </fileset>
            <fileset dir="${tomcat.home}/bin">
                    <include name="*.jar"/>
            </fileset>
            <fileset dir="${tomcat.home}/server/lib">
                <include name="*.jar"/>
            </fileset>
        </classpath>
    </taskdef>


    <echo>Generating java files out of root jsps</echo>
    <jasper2 outputDir="${root.classes}"
            uriroot="${root.src}"
            verbose="9"
            package="org.apache.jsp"
            compilerSourceVM="1.5"
            compilerTargetVM="1.5"
            validateXml="false">
    </jasper2>

    <echo>Compiling root java files </echo>
    <javac srcdir="${root.classes}"
           destdir="${root.classes}"
           verbose="false"
           debug="true"
           optimize="false"
           includes="**/*.java"
           fork="yes"
           compilerSourceVM="1.5"
           compilerTargetVM="1.5"
           memoryInitialSize="800m"
           memoryMaximumSize="800m"
           >
        <classpath>
                <pathelement location="${java.home}/../lib/tools.jar"/>
                <pathelement
path="${tomcat.home}/webapps/ROOT/WEB-INF/classes"/>
                <fileset dir="${tomcat.home}/common/lib">
                        <include name="*.jar"/>
                </fileset>
                <fileset dir="${tomcat.home}/webapps/ROOT/WEB-INF/lib">
                        <include name="*.jar"/>
                </fileset>
        </classpath>
    </javac>
</target>



</project>

suspicious java.home property seems to point to the jre, whether
system JAVA_HOME variable point to the jdk:
/usr/local/java/ -> jdk1.5.0_06_32bit

I've checked the source code and found that the code in
org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:224)
tries to load the JDT or JAVAC compiler by name. Is it a classloading issue?

Thanx in advance

regards
Leon

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to