JSP class file generation

At runtime, the WebSphere® Application Server JavaServer Pages (JSP) engine loads JSP class files from either the WebSphere Application Server temp directory or a web module's WEB-INF/classes directory. The JSP engine first searches for a class file in the temp directory and then it searches in the web module's WEB-INF/classes directory.

In a default installation, the WebSphere Application Server temp directory is typically profile_root/temp. Figure 1 shows the processing logic of the JSP engine at runtime.

[z/OS]You should not use the CANCEL appserver_proc_name command to stop a server. Every time a server is cleanly stopped, these temp directories are removed. However, if the server is frequently not stopped cleanly, which happens if you cancel rather than stop the server, these directories are not removed and the HFS used for the temp directory eventually becomes full. You can also prevent this storage problem from occurring if you precompile your JSP files when you install an application or if you use the JspBatchCompiler function to precompile them before they are invoked.

[z/OS]When JSPs are compiled at runtime, the same generated classes are placed in each servant temporary directory. Those classes are then deleted when the server or servant is recycled, which is inefficient and leads to increased disk space usage to hold each copy of the same compiled classes. If the servant or server fail for any reason, these compiled classes are not be cleaned up automatically. Also, the deleted JSP classes have to be recompiled after each servant restarts.

[z/OS]The above inefficiency has been corrected. When JSPs are compiled at runtime, the JSP container generates the compiled classes into a common server temporary directory which persists after the server or servant has restarted.

important

The batch compiler supports the generation of class files in both the WebSphere Application Server temp directory and a web module's WEB-INF/classes directory, depending on the type of batch compiler target. In addition, the batch compiler enables the generation of class files into any directory on the filesystem, outside of the target application. Generating class files into a web module's WEB-INF/classes directory enables you to deploy the web module as a self-contained web application archive (WAR) file, or a WAR file inside an enterprise archive (EAR) file. The following table shows the batch compiler's behavior when compiling class files.

Table 1. Batch compiler behavior. Batch compiler behavior when compiling class files
  ear.path or war.path supplied enterpriseApp.name supplied
compileToDir not supplied; compileToWebInf not supplied, or is true The class files are compiled into the web module's WEB-INF/classes directory. The class files are compiled into the web module's WEB-INF/classes directory.
compileToDir not supplied; compileToWebInf is false The class files are compiled into the web module's WEB-INF/classes directory.

The class files are compiled into the WebSphere Application Server temp directory, usually profile_root/temp.

compileToDir is supplied; compileToWebInf not supplied, or is either true or false The class files are compiled into the directory indicated by compileToDir. The class files are compiled into the directory indicated by compileToDir.

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: March 5, 2017 17:24
File name: cweb_jspclassfiles.html