cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
okapi
Deckhand II

I am facing BeanCreation Exception

WARN main springframework.context.support.ClassPathXmlApplicationContext:551 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check IdentityIQ database version: Cannot create JDBC driver of class '' for connect URL 'null' org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check IdentityIQ database version: Cannot create JDBC driver of class '' for connect URL 'null'

10 Replies
bakerstamper
Crew III

Fresh 8.4 installation with SQL Server 16

Same error.  

(incidentally, this install worked just fine with MySQL in under an hour...I'm a couple days in with Sql Server backend)

1) Here's what happens when I run 'iiq console':

* note: I get same error if I shut off the database, so this is a fundamental connection issue*

(the SPHOME and CLASSPATH were put in the iiq script by me for debugging)

$ ./iiq console
adding exports for Java 17
SPHOME is /c/Users/levis/dev/SailPoint/identityiq_home
CLASSPATH is /c/Users/levis/dev/SailPoint/identityiq_home/WEB-INF/classes:/c/Users/levis/dev/SailPoint/identityiq_home/WEB-INF/lib/identityiq.jar:/c/Users/levis/dev/SailPoint/identityiq_home/WEB-INF/lib/mssql-jdbc-12.8.1.jre8.jar
iiq.hostname : hplaptop-console
2024-10-07T23:23:43,771 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 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check IdentityIQ database version: Invalid object name 'spt_database_version'.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check IdentityIQ database version: Invalid object name 'spt_database_version'.

 

==========

I can connect with a local python script and enumerate a table:

$ python ./test.py
Connection successful!

Table Structure (identityiq.spt_database_version):
Column Name: name, Data Type: nvarchar, Size: 255
Column Name: system_version, Data Type: nvarchar, Size: 128
Column Name: schema_version, Data Type: nvarchar, Size: 128

Table Data (spt_work_item):
Connection closed.
(sqlenv)

python code:

mport pyodbc

# Define the connection parameters
server = 'localhost'  # Change this to your server name
database = 'identityiq'
username = 'sa'
password = '*******'

# Establish connection to the database
try:
    connection = pyodbc.connect(
        f'DRIVER={{SQL Server}};SERVER={server};DATABASE={database};UID={username};PWD={password}'
    )
    print("Connection successful!")

    # Create a cursor object to interact with the database
    cursor = connection.cursor()

    # Get and print table structure (column names and types)
    print("\nTable Structure (identityiq.spt_database_version):")
    columns = cursor.columns(table='spt_database_version')
   
    for column in columns:
        print(f"Column Name: {column.column_name}, Data Type: {column.type_name}, Size: {column.column_size}")

    # Execute a query to retrieve all rows from the Employees table
    cursor.execute("SELECT * FROM identityiq.spt_database_version")

    # Fetch all rows from the query result
    rows = cursor.fetchall()

    # Display the rows
    print("\nTable Data (spt_work_item):")
    for row in rows:
        print(row)

except pyodbc.Error as e:
    print("Error connecting to the database:", e)

finally:
    # Close the connection to the database
    if connection:
        connection.close()
        print("Connection closed.")