tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leon Rosenberg" <rosenberg.l...@googlemail.com>
Subject exception in jspc with 5.5.16
Date Thu, 20 Apr 2006 09:37:44 GMT
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:

frs@build01:~/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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message