Can any body tell me what this exception means, its confusing because I tried all possible ways to change the path of the keystore.. doesn't work.
Environment: ORACLE database server, configuring SSL
Exception in thread "main" java.sql.SQLException: Io exception:
java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at project1.JDBCSSLTest.getConnection(JDBCSSLTest.java:42)
at project1.JDBCSSLTest.run(JDBCSSLTest.java:22)
at project1.JDBCSSLTest.main(JDBCSSLTest.java:49)
The java class I am using is.
package project1;
import java.security.Security;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.*;
import oracle.jdbc.OracleDriver;
public class JDBCSSLTest
{
public JDBCSSLTest()
{
// must enable this
Security.addProvider(new oracle.security.pki.OraclePKIProvider());
}
public void run () throws SQLException
{
Connection conn = getConnection();
System.out.println("Auto Commit = " + conn.getAutoCommit());
conn.close();
}
public static Connection getConnection() throws SQLException
{
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)" +
"(HOST=localhost)(PORT=2484))" +
"(CONNECT_DATA=(SERVICE_NAME=orcl)))";
java.util.Properties props = new java.util.Properties();
props.setProperty("user", "system");
props.setProperty("password", "weblogic");
props.setProperty("javax.net.ssl.trustStore","C://lib//ewallet.p12");
props.setProperty("javax.net.ssl.trustStoreType","PKCS12");
props.setProperty("javax.net.ssl.trustStorePassword","weblogic123");
props.setProperty("oracle.net.ssl_cipher_suites", "SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA");
DriverManager.registerDriver(new OracleDriver());
Connection conn = DriverManager.getConnection(url, props);
return conn;
}
public static void main(String[] args) throws SQLException
{
JDBCSSLTest dSTest = new JDBCSSLTest();
dSTest.run();
System.out.println("all done..");
}
}