Disable JSP run-time compilation

By default, the JSP engine translates a requested JSP file, compiles the .java file, and loads the compiled servlet into the run-time environment. In previous releases of WAS, if a .class file did not exist, the JSP engine always translated and compiled the JSP file. You had to turn off the web application (.war)s reload capability to prevent additional translations and recompiles of the file.

With V5.1 of WAS, you can now change the JSP engine default behavior by indicating a JSP file should never be translated or compiled at run time, even when a .class file does not exist.

If run-time compilation is disabled, precompile the JSP files, which provides the following advantages...

You can disable run-time JSP file compilation on a global or an individual web application (.war) basis...

If you disable run-time compilation and a request arrives for a JSP file that does not have a matching .class file, the JSP engine returns HTTP error 501 (Not implemented) to the browser. If the JSP file does not exist, the JSP engine returns HTTP error 404 (File not found) to the browser. In both cases, an exception is written to the System Out (SYSOUT) and First Failure Data Capture (FFDC) logs. If a JSP file has a matching .class file but that file is out of date, the JSP engine still loads the .class file into memory.

Perform the following steps to determine whether the disableJspRuntimeCompilation option is enabled in WAS...

  1. Enable the Diagnostic Trace Service and set the trace specification to com.ibm.ws.webcontainer.jsp.servlet.*=all=enabled.

  2. Request a JSP file.

  3. Locate the string, disableJspRuntimeCompilation:true, in the trace.log file.

  4. Ensure the jspUri: entry matches the requested JSP file.

If both the disableJspRuntimeCompilation:true string and the matching jspUri: entry appear in the trace, the disableJspRuntimeCompilation setting is enabled for the web application (.war).

 

See Also

JSP files
Developing Webapplications
Custom property settings