Problem Note 67453: "NoClassDefFound" and "ClassNotFoundException" errors occur when you start instances of SAS® Web Application Server
In a SAS 9.4 M7 environment with a horizontally clustered middle-tier, you might experience errors similar to the following when you start instances of SAS Web Application Server:
java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm
java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
For example, you might see these errors when SASServer1_1 is starting and you deploy the /SASSharedApps, /SASPortal, and /SASBIPortlets web applications.
Note: The errors that are shown above are parts of longer messages, which can vary slightly.
These errors are displayed in the SASServer1_1 server.log in the SAS-configuration-directory/Lev1/Web/WebAppServer/SASServer1_1/logs/ directory.
If you experience the particular issue that is described in this note, you see these errors only for the SASServer1_1 instance on the middle-tier node machine; you do not see it with the SASServer1_1 instance on the primary middle-tier machine.
This behavior occurs when necessary JAR files are removed, wrongly, from the middle-tier node machine during the installation process.
If you experience this issue, you can work around it by following steps:
- Stop all middle-tier services on the middle-tier node machine. You can use the sas.servers script to do this in a Linux environment or you can use Windows Services in a Microsoft Windows environment. For more information about stopping services, see Overview of Server Operation in the SAS® 9.4 Intelligence Platform: System Administration Guide, Fourth Edition.
- On the middle-tier node machine, search the SDW_*.log files in the ~/.SASAppData/SASDeploymentWizard/ directory and identify any log messages that contain the string Deleted plugin.
In Linux environments, you can use a command similar to the one that is shown below to search for the string in those files. (Replace /home/sas/ in the path below with the appropriate home directory for your SAS installer account.)
grep -rnw '/home/sas/.SASAppData/SASDeploymentWizard/' -e 'Deleted plugin'
In Windows environments, you can use a command similar to the one that is shown below to search for the string. (Replace C:\Users\sas\ in the path below with the appropriate home directory for your SAS installer account.)
findstr /c:"Deleted plugin" "C:\Users\sas\AppData\Local\SAS\SASDeploymentWizard\*"
You should see messages that look similar to the examples below:
INFO: Deleted plugin SASHOME/SASVersionedJarRepository/eclipse/plugins/struts.signed_20200830_1.3.8.2_SAS_20170713114047
. . .more message lines. . .
INFO: Deleted plugin SASHOME/SASVersionedJarRepository/eclipse/plugins/struts_1.3.8.2_SAS_20170713114047
If you do not see any log messages that contain the Deleted plugin string in the SDW_*.log files, you should not proceed with the following steps. Please contact SAS Technical Support for further assistance.
- For each of the log messages that include the Deleted plugin string, manually copy the plug-in that is listed in the log message from the SASHOME/SASVersionedJarRepository/eclipse/plugins/ directory on the primary middle-tier machine to the SASHOME/SASVersionedJarRepository/eclipse/plugins/ directory on the middle-tier node machine. When you copy the plug-in for each log message, you copy the entire plug-in directory that is listed (for example, SASHOME/SASVersionedJarRepository/eclipse/plugins/struts_1.3.8.2_SAS_20170713114047/) and all of its content. When you copy and paste the directory and its content, ensure that you do not change the file permissions and owner for the directory and its content.
- Restart all middle-tier services on the middle-tier node machine. You can use the sas.servers script to do this in a Linux environment, or you can use Windows Services in a Windows environment. For more information about starting services, see Overview of Server Operation in the SAS® 9.4 Intelligence Platform: System Administration Guide, Fourth Edition.
- Confirm that the java.lang.NoClassDefFoundError and the java.lang.ClassNotFoundException error messages are no longer present in the server.log file that resides in SAS-configuration-directory/Lev1/Web/WebAppServer/SASServerX_Y/logs/.
If that workaround does not resolve your errors or if you have any questions about how to complete the workaround steps, contact SAS Technical Support.
A hot fix is planned for this issue.
Operating System and Release Information
| SAS System | SAS Web Application Server | Microsoft® Windows® for x64 | 9.4 TS1M7 | |
| 64-bit Enabled AIX | 9.4 TS1M7 | |
| 64-bit Enabled Solaris | 9.4 TS1M7 | |
| HP-UX IPF | 9.4 TS1M7 | |
| Linux for x64 | 9.4 TS1M7 | |
| Solaris for x64 | 9.4 TS1M7 | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
| Type: | Problem Note |
| Priority: | medium |
| Date Modified: | 2021-03-02 12:03:53 |
| Date Created: | 2021-02-18 15:31:09 |