Пожалуйста, сообщите об исключении - PullRequest
1 голос
/ 19 сентября 2010

Может ли кто-нибудь сказать мне, что означает это исключение, оно сбивает с толку, потому что я попробовал все возможные способы изменить путь хранилища ключей .. не работает.

Среда: сервер базы данных ORACLE, настройка 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)

Я использую Java-класс:

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..");
}
}

Ответы [ 2 ]

1 голос
/ 19 сентября 2010

Я не знаком с этим с этим, но сработала информация об исключениях в вашем коде пользователя.

   at project1.JDBCSSLTest.getConnection(JDBCSSLTest.java:42)

и во время выполнения отсутствует обязательное свойство при извлечении соединения

Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Похоже, вы не настроили это обязательное свойство trustAnchors.

1 голос
/ 19 сентября 2010

С этот документ Oracle :

“java.sql.SQLException: Io exception: java.lang.RuntimeException:
 Unexpected error: java.security.InvalidAlgorithmParameterException: 
 the trustAnchors parameter must be non-empty”: 

, если вы используете кошельки PKCS12 и поставщик Oracle для PKI не включен должным образом.Это исключение происходит от реализации PKCS12 от Sun (поставщика PKI от Sun), которая не совместима с кошельками Oracle.Если вы используете кошельки PKCS12, поставщик PKI Oracle должен быть правильно включен для PKCS12 либо статически, либо динамически.

Включение поставщика PKI описано в разделе 2.2.4 того же документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...