Article Number
000037258
Applies To
RSA Product Set: Identity Governance & Lifecycle
RSA Version/Condition: 7.1.0 P01, 7.1.0 P02
Application Server: WildFly
Issue
The following error is thrown after applying RSA Identity Governance & Lifecycle P03, P04 or P05 to a server running 7.1.0. P01 or P02:
java.lang.ClassNotFoundException: com.aveksa.migration.db.password.ViewPasswordSettingMigrator
Image description
The aveksaServer.log shows the following error:
03/07/2019 22:41:08.555 INFO (ServerService Thread Pool -- 82) [com.aveksa.server.runtime.AveksaSystem] ******************** Aveksa System Initialization End ********************
03/07/2019 22:41:08.555 FATAL (ServerService Thread Pool -- 82) [com.aveksa.server.runtime.AveksaSystem] '
Initialization has failed!
java.lang.ClassNotFoundException: com.aveksa.migration.db.password.ViewPasswordSettingMigrator from [Module "deployment.aveksa.ear:main" from Service Module Loader]
The patch.log shows the following exception:
SQL/line#: /home/oracle/wildfly-10.1.0.Final/standalone/tmp/vfs/deployment/deployment37c53e28e101823/aveksa.war-2687d1caa55764e9/WEB-INF/database/updates/7.0/ACM-73375.sql(1):
Start time [Thu Mar 07 22:41:08 EST 2019]
java com.aveksa.migration.db.password.ViewPasswordSettingMigrator java.lang.ClassNotFoundException: com.aveksa.migration.db.password.ViewPasswordSettingMigrator from [Module "deployment.aveksa.ear:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264)
at com.aveksa.migration.jdbctool.SQLFileExecutor.execute(SQLFileExecutor.java:211)
at com.aveksa.migration.jdbctool.SQLFileExecutor.execute(SQLFileExecutor.java:107)
at com.aveksa.migration.jdbctool.SQLFileExecutor.execute(SQLFileExecutor.java:98)
at com.aveksa.migration.jdbctool.IncrementalUpdate.update(IncrementalUpdate.java:481)
at com.aveksa.migration.jdbctool.MigrateSchema.execute(MigrateSchema.java:159)
at com.aveksa.migration.jdbctool.CheckDatabase.migrateSchema(CheckDatabase.java:1403)
at com.aveksa.migration.jdbctool.CheckDatabase.check(CheckDatabase.java:577)
at com.aveksa.server.runtime.AveksaSystem.initialize(AveksaSystem.java:309)
at com.aveksa.init.Startup.init(Startup.java:52) at com.aveksa.gui.core.ACMFramework.init(ACMFramework.java:94)
at com.aveksa.gui.core.ACMFramework.initInstance(ACMFramework.java:83)
at com.aveksa.init.InitServlet.init(InitServlet.java:42)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117)
at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.handle(RunAsLifecycleInterceptor.java:65)
at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:76)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103)
at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:250)
at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:133)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:546)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:517)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:559)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:101)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
[0:00:00] File Completion Time: /home/oracle/wildfly-10.1.0.Final/standalone/tmp/vfs/deployment/deployment37c53e28e101823/aveksa.war-2687d1caa55764e9/WEB-INF/database/updates/7.0/ACM-73375.sql
[0:00:11] Total Migration Time
Cause
TheRSA Identity Governance & Lifecycle 7.0.1 patch process for P03, P04 and P05 was not removing the deprecated script ACM-73375.sql which calls the Java class that has also been deprecated and removed. During the database patching process, ACM-73375 gets executed, calling com.aveksa.migration.db.password.ViewPasswordSettingMigrator class which no longer exists. As a result, the java.lang.ClassNotFoundException: com.aveksa.migration.db.password.ViewPasswordSettingMigrator error is thrown.
Resolution
This issue has been resolved in RSA Identity Governance and Lifecycle P06 and higher.
Workaround
The following workaround will remove any customizations you have done to the ear file previously. You will need to reapply those customizations.To work around the problem without fixing the patching utility until you apply P06, you need to rebuild a "clean" ear-file with the following steps:
Note: Before proceeding with the steps below, please make sure that ACM is running.
- SSH into the RSA Identity Governance and Lifecycle server as the oracle user.
- Navigate to the patch folder where patch files are extracted. For example, cd /home/oracle/Aveksa_7.1.0_P05.
cd /home/oracle/<Aveksa_PatchName>
- Remove the customizeACM directory if exists
rm -rf /tmp/customizeACM
- Prepare a clean patch for deployment
cp -ar ./aveksa.ear /tmp/customizeACM
- Deploy the new patch without any existing customizations or files from older versions
./deploy/customizeACM.sh -d
Notes
Installations with a remote database with WebSphere and WebLogic are not affected, as we take the pristine patch (e. g., 7.1.0 P05) ear-file and apply customization on top of it, so no obsolete scripts are not copied into it from previous patches/releases.