Unable to deploy Sailpoint over tomcat server on localhost

When i am trying to start the tomcat in my local pc i am facing the below issue in tomcat “java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load . The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access”. Tomcat is getting started but not able to open the identity IQ. Kindly help me if any one had come accros this issue.

Details-

Identity IQ-8.2

Apache tomcat - 9.0.56

JDK -1.8

Mysql -8.0.42.0

Windows version in my pc - windows 10

Full error logs below:

‘‘‘

20-Aug-2025 04:18:12.735 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
20-Aug-2025 04:18:12.735 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/identityiq] startup failed due to previous errors
20-Aug-2025 04:18:12.834 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [identityiq] registered the JDBC driver [com.mysql.cj.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
20-Aug-2025 04:18:12.834 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [identityiq] appears to have started a thread named [Log4j2-TF-2-Scheduled-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
20-Aug-2025 04:18:12.834 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [identityiq] appears to have started a thread named [mysql-cj-abandoned-connection-cleanup] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
20-Aug-2025 04:18:12.834 SEVERE [main] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [identityiq] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@796e485e]) and a value of type [sailpoint.api.Meter.MeterSet] (value [sailpoint.api.Meter$MeterSet@2abdfa77]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
20-Aug-2025 04:18:12.855 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\sudhanshu Mishra\Desktop\Sail\apache-tomcat-9.0.56\webapps\identityiq] has finished in [12,747] ms
20-Aug-2025 04:18:12.855 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\sudhanshu Mishra\Desktop\Sail\apache-tomcat-9.0.56\webapps\manager]
20-Aug-2025 04:18:12.871 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\sudhanshu Mishra\Desktop\Sail\apache-tomcat-9.0.56\webapps\manager] has finished in [16] ms
20-Aug-2025 04:18:12.871 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\sudhanshu Mishra\Desktop\Sail\apache-tomcat-9.0.56\webapps\ROOT]
20-Aug-2025 04:18:12.887 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\sudhanshu Mishra\Desktop\Sail\apache-tomcat-9.0.56\webapps\ROOT] has finished in [16] ms
20-Aug-2025 04:18:12.887 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [“http-nio-8080”]
20-Aug-2025 04:18:12.919 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [13402] milliseconds
20-Aug-2025 04:18:16.023 INFO [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load . The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load . The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1427)
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:1052)
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

’’’’

Hi Community,
Kindly help, as this is my first step in my sailpoint journey, thanks.

Hi Sudanshu,

Welcome to the community.

can you please navigate to “C:\Users\sudhanshu Mishra\Desktop\Sail\apache-tomcat-9.0.56\logs\” and check for the logs: Check localhost.[date].log and catalina.[date].log for the listener which is failing to restart.

It could be due to database issue as well, can you please check your iiq.properties file

Check iiq.properties file in:

/tomcat/webapps/identityiq/WEB-INF/classes/iiq.properties

dataSource.url=jdbc:mysql://localhost:3306/identityiq?useSSL=false&serverTimezone=UTC
dataSource.username=identityiq
dataSource.password=identityiq
dataSource.driverClassName=com.mysql.cj.jdbc.Driver

Test Database Connection:
mysql -u identityiq -p
SHOW DATABASES;
USE identityiq;
SHOW TABLES;

1 Like

Hi @Sailthroughcyber

Please note:

  1. Do create identityiq from cmd line which is opened as Run as administrator
  2. make sure server.xml is configured with unique port.
  3. as suggested by @naveenkumar3 , validate Database.
  4. check the RAM size and utilization from task manager, whether you have sufficient RAM and ROM.
  5. Check java -version.

if you are open to zoom call, let me know, I will help you sort out the installation errors.

1 Like

@naveenkumar3 Thanks Naveen, i have copy pasted the above code in my iiq.properties file and tomcat successfully deployed the sailpoint. Just curious, how my trainer has successfully deployed the sailpoint application with the below quoted code which was throwing error for me? just for my knowledge.

’’’
dataSource.url=jdbc:mysql://localhost:3306/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
dataSource.driverClassName=com.mysql.cj.jdbc.Driver
sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
’’’

@pattabhi , Many thanks Pattabhi… my issue has been resolved by changing the iiq.properties file. It feels great when we have seniors like you in the community :slight_smile:

Hi @Sailthroughcyber

1. Examine Tomcat logs

  • Check catalina.out and other logs in your Tomcat logs directory.
  • Review localhost.log for any unhandled exceptions

2**.Redeployment Issues**

Stop Tomcat completely, delete the contents of the work and temp directories, and restart.

3.Corrupted Deployment

Redeploy the app cleanly. Delete the old deployment from webapps, then copy the fresh .war file and restart Tomcat.

Your trainer likely has an older MySQL version or has MySQL configured with less strict security settings.

That is what I could think of.