We all know that to compile JSP manually on the Oracle Application R12 instance, we need to run the file $FND_TOP/patch/115/bin/ojspCompile.pl.
Its help is as follows:
syntax: ./ojspCompile.pl COMMAND {ARGS}
COMMAND --compile update dependency, compile delta
--create rebuild entire dependency file
-delta.out update dependency, list delta to file
-dep.out update dependency, output heirarchy to file
ARGS -s matching condition for JSPs filenames
-p number of parallel compilations
-log to override logfile from ojspCompile.conf
You are
recommended to set the log file location
outside of any network file system shared (NFS) area/drive.
-conf to override ojspCompile.conf
--retry retry previously failed compilation attempts
--flush forces recompilation of all parent JSPs
--quiet do not provide an actively running progress meter
--fast instantly fail jsps that are *possibly* invalid
example1: ojspCompile.pl --compile -s 'jtf%' -p 20 --retry
example2: ojspCompile.pl --compile -s 'jtflogin.jsp,jtfavald.jsp' --flush
example3: ojspCompile.pl --compile --fast --quiet
By default, the jsp compiler script uses following configuration file
So if your classes are not listed in this file, your jsps will not compile by ojspCompile.
Ofcourse, you can always set the "main_mode" to "recompile" in orion-web.xml, but that for production you do not want to change it and compile the JSP on file deployment.
References:
Its help is as follows:
syntax: ./ojspCompile.pl COMMAND {ARGS}
COMMAND --compile update dependency, compile delta
--create rebuild entire dependency file
-delta.out
-dep.out
ARGS -s
-p
-log
You are
recommended to set the log file location
outside of any network file system shared (NFS) area/drive.
-conf
--retry retry previously failed compilation attempts
--flush forces recompilation of all parent JSPs
--quiet do not provide an actively running progress meter
--fast instantly fail jsps that are *possibly* invalid
example1: ojspCompile.pl --compile -s 'jtf%' -p 20 --retry
example2: ojspCompile.pl --compile -s 'jtflogin.jsp,jtfavald.jsp' --flush
example3: ojspCompile.pl --compile --fast --quiet
If your JSP uses custom classes, then compiling jsp manually can fail if proper classpath is not set. Yes, even though if you have setup the classpath correctly in orion-application.xml, it will fail because this jsp compile utility does not read orion-application.xml classpath.
So, the problem is to identify where to set the classpath so that above utility can pick it up. After several search and looking into code, I found following:
By default, the jsp compiler script uses following configuration file
$INST_TOP/appl/admin/ojspCompile.conf
This conf file has a classpath field in it which is usually pointed to file
$INST_TOP/appl/admin/ojspCompile.properties
This property file lists the
classpath used for JSP compilation.
So if your classes are not listed in this file, your jsps will not compile by ojspCompile.
Ofcourse, you can always set the "main_mode" to "recompile" in orion-web.xml, but that for production you do not want to change it and compile the JSP on file deployment.
References:
- 458338.1 How to Enable Automatic Compilation of JSP pages in R12 Environment
- 433386.1 JSP Pages Hanging in R12 After Removing Cached Class Files in _pages
- 783094.1 Compile jsp files at Application R12 at Windows