Tomcat 7 Migration
In Release 9.1 SP 14, the bundled Tomcat application server has been updated to Tomcat 7 to take advantage of new improvements, such as the Web application memory leak detection and prevention. In most circumstances this change will have no impact; however, some third-party Building Blocks may require some minor changes to work with this release.
These changes relate to additional strictness in attribute parsing and reserved words in EL language, a change in tag library declaration syntax, and a recommended change to prevent regression of context startup performance.
To ensure that startup performance is not impacted by Servlet 3.0 annotation scanning, the WEB-INF/web.xml file of all building blocks must be updated to include a metadata-complete attribute.Two options are available:
- Update to a minimum version of the Servlet 2.5 specification.
- Add the attribute.
Alternatively, update to Servlet 3.0 and include the absolute-ordering element:
To learn more about the annotation scanning changes, see http://tomcat.apache.org/migration-7.html#Annotation_scanning.
Spaces Between Attributes
When compiling a JSP, you may receive the error 'The JSP specification requires that an attribute name is preceded by whitespace'. Attributes previously could continue with no space, for example:
For Jasper to successfully compile, spaces need to be added in any JSP that has this problem. To learn more, see Tomcat bug 49297: https://issues.apache.org/bugzilla/show_bug.cgi?id=49297
Java Reserved Words in Expression Language
Expression Language tags cannot include statements that are valid Java reserved words. For example, a Bean may have a getter named getDefault(), an EL language expression would previously be able to access this with the following:
However, this violates the reserved word strictness introduced in this release. Uses of reserved words must be updated to use the method explicitly:
To learn more, see Tomcat bug 49217: https://issues.apache.org/bugzilla/show_bug.cgi?id=49217
Tag Library Declarations
Tag library declarations in WEB-INF/web.xml could previously be an immediate child of the the web-app element:
Tomcat 7 no longer supports this configuration. Custom tag libraries declared in this way must be included in a jsp-config element:
To Learn More
To learn more about the potential breaking changes caused by the migration from Tomcat 6 to 7, see http://tomcat.apache.org/migration-7...6.0.x_to_7.0.x.