我正在尝试使用下面列出的代码使用SSL侦听器端口访问数据库。
import java.security.Security;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SSLTester
{
public static void main(String[] args)
throws Exception
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Security.insertProviderAt(new oracle.security.pki.OraclePKIProvider(), 3);
String url = "jdbc:oracle:thin:@(DESCRIPTION = " +
"(ADDRESS_LIST = " +
"(ADDRESS = " +
"(PROTOCOL = TCPS)" +
"(HOST = <hostname>)" +
"(PORT = <port>)" +
")" +
") " +
"(CONNECT_DATA = (SERVICE_NAME = <servicename>))" +
")";
java.util.Properties info = new java.util.Properties();
info.setProperty("oracle.net.authentication_services", "(TCPS)");
info.setProperty("javax.net.ssl.trustStore", "YOUR_WALLET_LOCATION/cwallet.sso");
info.setProperty("javax.net.ssl.trustStoreType", "SSO");
info.setProperty("javax.net.ssl.keyStore", "YOUR_WALLET_LOCATON/cwallet.sso");
info.setProperty("javax.net.ssl.keyStoreType", "SSO");
Connection conn = DriverManager.getConnection(url, info);
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select user from dual");
while (rset.next())
System.out.println(rset.getString(1));
rset.close();
stmt.close();
conn.close();
}
}
但我看到下面的错误。我尝试使用&#34; setProperty&#34;更新用户ID和passowrd。同样但仍然看到同样的错误。
java.sql.SQLRecoverableException:IO错误:网络适配器可以 没有建立连接 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)at at oracle.jdbc.driver.PhysicalConnection。(PhysicalConnection.java:715) 在oracle.jdbc.driver.T4CConnection。(T4CConnection.java:385) 在 oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30) 在oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)at java.sql.DriverManager.getConnection(DriverManager.java:664)at java.sql.DriverManager.getConnection(DriverManager.java:208)at TestOracleSSLConnection.main(TestOracleSSLConnection.java:22)引起 by:oracle.net.ns.NetException:网络适配器不能 建立连接 oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:445)at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:464) at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:594) 在oracle.net.ns.NSProtocol.connect(NSProtocol.java:229)at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)at at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)... 7 更多由:oracle.net.ns.NetException:无法初始化ssl 上下文。在 oracle.net.nt.CustomSSLSocketFactory.getSSLSocketFactory(CustomSSLSocketFactory.java:325) 在oracle.net.nt.TcpsNTAdapter.connect(TcpsNTAdapter.java:115)at oracle.net.nt.ConnOption.connect(ConnOption.java:133)at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:411)...还有12个 引起:oracle.net.ns.NetException:无法初始化信任 商店。在 oracle.net.nt.CustomSSLSocketFactory.getTrustManagerArray(CustomSSLSocketFactory.java:413) 在 oracle.net.nt.CustomSSLSocketFactory.getSSLSocketFactory(CustomSSLSocketFactory.java:309) ... 15更多引起: oracle.security.crypto.asn1.ASN1FormatException: oracle.security.crypto.core.CipherException:无效的填充字符串 (或密码错误)at oracle.security.crypto.cert.PKCS12Safe.input(PKCS12Safe.java:226)at at oracle.security.crypto.cert.PKCS12Safe。(PKCS12Safe.java:120)at at oracle.security.crypto.cert.PKCS12.input(PKCS12.java:179)at at oracle.security.crypto.cert.PKCS12。(PKCS12.java:119)at at oracle.security.pki.OracleKeyStoreSpi.engineLoad(未知来源)at oracle.security.pki.OracleSSOKeyStoreSpi.engineLoad(未知来源) 在java.security.KeyStore.load(KeyStore.java:1445)at oracle.net.nt.CustomSSLSocketFactory.getTrustManagerArray(CustomSSLSocketFactory.java:404) ......还有16个