I am trying to run the iiq console on a brand new sandbox install of IdentityIQ 8.4. I am running on macOS using JDK 17. When I run iiq console, however, I get the following error:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2025-11-14T14:53:34,947 WARN main springframework.context.support.ClassPathXmlApplicationContext:559 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'systemStarter' defined in class path resource [iiqBeans.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: 'org.apache.commons.lang3.Range org.apache.commons.lang3.Range.of(java.lang.Comparable, java.lang.Comparable)'
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'systemStarter' defined in class path resource [iiqBeans.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: 'org.apache.commons.lang3.Range org.apache.commons.lang3.Range.of(java.lang.Comparable, java.lang.Comparable)'
I’ve never seen this one before. Any idea what the issue is here and how to get around it?
Please check your Java version in your class path if it same as Java 17. Also check the database version. It should be supporting to the version of 8.4 of SailPoint.
This error is occurring because IdentityIQ 8.4 is not compatible with JDK 17. The specific error about org.apache.commons.lang3.Range.of() is a symptom of running IIQ on an unsupported Java version.
IdentityIQ 8.4 officially supports:
JDK 11 & JDK 8
JDK 17 introduces breaking changes and incompatibilities with the libraries and frameworks that IIQ 8.4 uses.
Try downgrading the it to jdk11 and then try running the console command.
I realized that JDK17 wasn’t supported after posting this. I changed my JDK over to JDK11 but still end up getting this error. This is not one that I have seen before in working with IIQ. My guess is it has something to do with the version of commons-lang3 being used, but I didn’t want to mess with any of the libraries without knowing for sure the best course of actions. Thoughts?
Do you have a different version of commons-lang3 or commons-text in your WEB-INF/lib folder? It should be commons-lang3-3.12.0.jar and commons-text-1.10.0.jar in your deployed /lib folder.
Please try the following steps to diagnose the issue:
Verify iiq.properties: Please double-check all database connection parameters, specifically confirming the driver class name: dataSource.driverClassName=com.mysql.cj.jdbc.Driver
Set Environment Variables: Set the necessary environment variables at the CMD session level (Run as Administrator), ensuring all paths are correct. Run each command separately:
SET JRE_HOME=D:\java\jdk-11.0.24\
SET JAVA_HOME=D:\java\jdk-11.0.24\
SET CATALINA_HOME=D:\Instances\apache-tomcat-9\
SET PATH=D:\java\jdk-11.0.24\bin\
iiq console
Check Permissions: Ensure all folders, especially the main IdentityIQ deployment folder, have the necessary read/write permissions."
Yes, those are the versions of commons-lang3 and commons-text that I have. It is a stock 8.4 distribution that is setup using SSB 7.0. I’ve never encountered this issue before, and we have 8.4 in production. I’m only running into this issue getting a brand new sandbox environment up and running on my mac. Weird.
Finally had time to do a bit of digging. The method in question didn’t exist in commons-lang3 until 3.13, and 8.4 out of the box comes with 3.12. I’ve replaced it with the latest and greatest and I think that should address the issue.
Yeah, that was my gut reaction when I was looking around, but it feels strange that my IIQ uses version 3.12 and runs the console just fine, and I assume your working box has the same setup. Are you using a different database vendor for your local environment vs the working one?