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 is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros
|
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
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.