I'm using Tomcat 4.1 to hosting my client's applications and I was testing the Tomcat 5.0 on another server. Applications developed with Struts and Webwork had problems with the javax.servlet.jsp.tagext.TagAttributeInfo. The constructor of this class is different from Tomcat4.1's JSP API to Tomcat5.0's JSP API. I believe that the old constructor must have been kept. ------------------------------ java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:568) org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:401) org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248) org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:162) org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418) (...) ------------------------------
Going from 4.1 to 5.0 is a major version change. We do not guarantee binary compatibility between these versions. You should at a minimum always make sure your apps compile against the new version.
If you pre-compiled using tomcat 4 and wish to deploy on 5, you must copy tomcat 4's jasper runtime to the WEB-INF/lib dir.