PQ73285: JSPBATCHCOMPILER FAILS TO COMPILE JSPS IN HORIZONTAL CLONE ENVIRONMENT. JSPG0059E: UNABLE TO COMPILE CLASS

APAR status
Closed as user error.

Error description
Customer wished to use JspBatchCompiler to compile JSPs
across a horizontally cloned environment. He was able to
install the application on the primary node and successfully
compile the JSPs using the command syntax:
JspBatchCompiler -enterpriseApp NMWB-EAR -webModule NMWB-WEB
He then installed the application on the clone and tried to
compile the JSPs and it failed. Customer's comments are as
follows:
We have two node horizontal cloning and I can compile on the
primary node and I get the following errors on the secondary
node and request you try the same in your lab (on a two node
horizontal cloning)
1 error
org.apache.jasper.JasperException: JSPG0059E: Unable to
compile class for JSP
        at org.apache.jasper.compiler.Compiler.compile
 (Compiler.java:359)
        at org.apache.jasper.compiler.ibmtools.JasperUtil.
        compile(JasperUtil.java:439)
        at org.apache.jasper.compiler.ibmtools.AEBatchC.
        compileDir(AEBatchC.java:463)
        at org.apache.jasper.compiler.ibmtools.AEBatchC.
        compileDir(AEBatchC.java:479)
        at org.apache.jasper.compiler.ibmtools.AEBatchC.
        compileDir(AEBatchC.java:479)
        at
org.apache.jasper.compiler.ibmtools.AEBatchC.
buildTempDirectoryAndCompile(AEBatchC.java:375)
        at
org.apache.jasper.compiler.ibmtools.AEBatchC.
compileEnterpriseApp(AEBatchC.java:238)
        at org.apache.jasper.compiler.ibmtools.AEBatchC.
        compile(AEBatchC.java:180)
        at
org.apache.jasper.compiler.ibmtools.JspBatchCompiler.compile
(JspBatchCompiler.java:17)
        at org.apache.jasper.compiler.ibmtools.
        JspBatchCompiler.main(JspBatchCompiler.java:28)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.
        java:158)
/opt/WebSphere/AppServer/temp/ripley/NMWASdevi01ripley/NMwb/
NMWB-WEB.war/jsp/opportunity/
_OpportunityCompAssLMCompChange_jsp_0.java:19: Class
com.lmig.nmwb.opportunity.bean.CompetitiveAssessmentChangeForm
not found in import.
import
com.lmig.nmwb.opportunity.bean.CompetitiveAssessmentChangeForm;
The ear file was installed in the primary node and the
JspBatchCopiler was run successfully.  He indicated that
he had copied the installedapp from the primary node and
copied it into the secondary node. He ran the ear expander to
install and then tried to use the JspBatchCompiler. It
compiled in the secondary node but then tried to compile the
primary node again and failed. Customer is logged
into the primary node.
JspBatchCompiler does not compile across horizontal clones.
You have to compile on each node. The customer's problem is
that the batch compiler does not stop on one node when it
tried to compile. It compiled the first node and then tries
and fails to compile the second.
We have installed the ear file on the primary node and have
been able to run the JspBatchCompiler using the command:
JspBatchCompiler -enterpriseApp <AppName> -webModule
<webmodulename>  and it compiles on the primary node. If we
install the application on the clone and try to run the same
command, it compiles and then tries to compile the other node
and fails.

If we install the application on the primary and clone and
then try the command:
JspBatchCompiler -enterpriseApp <appname> -webModule
<webmodulename> -nodeName <name> -nameServerPort <number>
it fails from the start.
The WebSphere installed path is the same, and the ear
installed directory is the same between the clones.

JspBatchCompiler should compile one node only and stop, or
compile all in the listed path.
Local fix
In a server group enviroment, the repository is shared with
multiple instances of a war. This means all one machine
(single node - vertical cloning) or many machines (multiple
nodes - horizontal cloning). The JSPBatchCompiler use
-nodeName option to get the configuration information of that
node. If the -nodeName is a remote machine as in this customer
case, the JSPBatchCompiler will run but it will output the
compiled classes to the localnode not the remoteNode. The
output path will be like <WAS_ROOT>/temp/remoteNodeName/...
remote node.
So the behavior of the JSPBatchCompiler is works as design.
However, a DOC apar is need to address this in the
infocenter. (DOC APAR 
PQ73259 opened)
I agree with copying the compiled content from the first
node to remote node .... if JSPBatchcomplier.sh does not try
compling on the remotenode which it does now.
This needs to be fixed.
Problem summary Problem conclusion Temporary fix Comments
The problem was the user had not properly set the classpath
for the application, so the JSPBatchCompiler was unable to
find the user's class.  This resulted in a
ClassNotFoundException being thrown by the batch compiler.
Once the classpath was corrected, this problem no longer
occurs.
APAR information
APAR number PQ73285
Reported component name WEBSPHERE AE SO
Reported component ID 5630A2202
Reported release 400
Status CLOSED USE
PE NoPE
HIPER NoHIPER
Submitted date 2003-04-16
Closed date 2003-04-29
Last modified date 2003-04-29

APAR is sysrouted FROM one or more of the following:

APAR is sysrouted TO one or more of the following:

Modules/Macros

Fix information

Applicable component levels


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > General
Operating system(s):
Software version: 400
Software edition:
Reference #: PQ73285
IBM Group: Software Group
Modified date: Apr 29, 2003