You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by to...@abilsoft.com on 2004/08/11 05:44:54 UTC

JSP Precompilation with Tomcat 5

I have been trying to resolve a frustration JSP precompilation
problem with Tomcat 5.  I had everythng working in prior Tomcat
releases but ever since the upgrade to 5 I am getting the
following error when I try to precompile my JSPs.

BUILD FAILED
java.lang.IncompatibleClassChangeError: Implementing class

java.lang.IncompatibleClassChangeError: Implementing class
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        at
org.apache.tools.ant.loader.AntClassLoader2.defineClassFromData(AntClassLoader2.java:76)
        at
org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1073)
        at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1137)
        at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1090)
        at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:960)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:219)
        at
org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:457)
       at
org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:183)
        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
        at org.apache.tools.ant.Task.perform(Task.java:364)
        at org.apache.tools.ant.Target.execute(Target.java:341)
        at org.apache.tools.ant.Target.performTasks(Target.java:369)
        at
org.apache.tools.ant.Project.executeTarget(Project.java:1214)
        at
org.apache.tools.ant.Project.executeTargets(Project.java:1062)
        at org.apache.tools.ant.Main.runBuild(Main.java:673)
        at org.apache.tools.ant.Main.startAnt(Main.java:188)
        at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
        at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)


Here is the excerpt from my build.xml

  <target name="jspc" depends="prepare, compile"
    description="prepares JSP source files">

    <!-- <echoproperties/> -->
    <echo message="About to define JspC task"/>
    <taskdef classname="org.apache.jasper.JspC" name="jasper2">
        <!--
        -->
        <classpath id="jspc.classpath">
            <pathelement path="${env.JAVA_HOME}/lib/tools.jar"/>
            <fileset dir="${env.CATALINA_HOME}">
                <include name="jasper-compiler.jar"/>
            </fileset>
            <pathelement path="${srcDir}/WEB-INF/lib/taglibs.jar"/>
        </classpath>
    </taskdef>
    <echo message="after JspC task defintion"/>

    <echo message="About to invoke jasper2"/>
    <jasper2
        validateXml="false"
        uriroot="${srcDir}"
        webXmlFramgment="${srcDir}/WEB-INF/generated_web.xml"
        outputDir="${jspDir}"/>

  </target>

  <target name="jspCompile" depends="jspc"
    description="compiles JSP source files">
    <javac srcdir="${jspDir}" destdir="${srcDir}/WEB-INF/classes"
         classpathref="classpath"/>
  </target>


I would greatly appreciate any and all help in resolving this
issue as I am at my wits end and out of ideas to try.

Thanks in advance!





---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: JSP Precompilation with Tomcat 5

Posted by QM <qm...@brandxdev.net>.
On Tue, Aug 10, 2004 at 11:44:54PM -0400, tomcat@abilsoft.com wrote:
: BUILD FAILED
: java.lang.IncompatibleClassChangeError: Implementing class

Given the definition of IncompatibleClassChangeError[1], it sounds like
you have a rogue JAR or classfile somewhere in the classpath.  If you're
upgrading from Tomcat 4 -> 5 beware of lingering v4 code.

Check the various "endorsed" dirs, as people sometimes put JARs there
out of desperation and then forget about them.

Also, this looks odd:

:         <classpath id="jspc.classpath">
:             <pathelement path="${env.JAVA_HOME}/lib/tools.jar"/>

I don't know whether it's "wrong," just that my precompilation works
without it. =)


:             <fileset dir="${env.CATALINA_HOME}">
:                 <include name="jasper-compiler.jar"/>
:             </fileset>

Wouldn't this be "common/lib/jasper-compiler.jar" ?
-and wouldn't you also need servlet-api.jar and jsp-api.jar?

-QM

[1] = http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IncompatibleClassChangeError.html

   Thrown when an incompatible class change has occurred to some class
   definition. The definition of some class, on which the currently
   executing method depends, has since changed.


-- 

software  -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org