2
oracle walletをパスワード・ストアとして使用して、Javaアプリケーションをoracleデータベースに接続する際に問題が発生しました。JDBC oracle wallet connection
は、私は以下のように小さなメインクラスなさ問題切り分けするには、次のディレクトリc
public static void main(String[] args) {
Connection conn;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.setProperty("oracle.net.tns_admin", "c:\\tns");
OracleDataSource ds = new OracleDataSource();
Properties props = new Properties();
System.setProperty("oracle.net.wallet_location", "c:/wallet2");
ds.setConnectionProperties(props);
ds.setURL("jdbc:oracle:thin:/@XE2");
Provider p;
p = new OraclePKIProvider();
Security.insertProviderAt(p, 3);
conn = ds.getConnection();
} catch (SQLException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
}
:私は、次のファイルをしました\ TNSを:
sqlnet.ora
tnsnames.ora
これがためにリストですsqlnet.oraの
SQLNET.AUTHENTICATION_SERVICES = (NTS)
names.directory_path = TNSNAMES
SQLNET.WALLET_OVERRIDE = TRUE
#WALLET_LOCATION = (SOURCE=(METHOD=FILE)METHOD_DATA=(DIRECTORY=c:\wallet))
WALLET_LOCATION = (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=c:/wallet)))
そのTNSNAMESため
C言語で...
XE2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
:\ wallet2次のファイルがあります。
cwallet.sso
ewallet.p12
ファイルは、以前のorapkiで生成され、正しい資格を持つXE2という名前の私のエントリがありました。
mar 02, 2017 3:57:00 PM oracle.jdbc.driver.DatabaseError findMessage
TRACE_30: Enter: "ORA-17168", java.io.IOException: Could not open wallet. java.io.IOException: Could not open wallet. Check password
mar 02, 2017 3:57:00 PM oracle.jdbc.driver.Message11 msg
TRACE_30: 72B6CBCC Enter: "ORA-17168", java.io.IOException: Could not open wallet. java.io.IOException: Could not open wallet. Check password
mar 02, 2017 3:57:00 PM oracle.jdbc.driver.Message11 msg
TRACE_30: 72B6CBCC Exit [0.066509ms]
と
mar 02, 2017 3:57:00 PM oracle.jdbc.driver.PhysicalConnection getSecretStoreCredentials
GRAVE: Throwing SQLException: 168java.io.IOException: Could not open wallet. java.io.IOException: Could not open wallet. Check password
誰もが私を助けることができる:私は、コードを実行すると、私は次の例外
Could not open wallet. java.io.IOException: Could not open wallet. Check password
Oracleトレースを有効にする私はこれらの行を見ることができますを取得しますか? 読んでいただきありがとうございます。 r。
ORA-17168は秘密ストアに問題が発生しました。 はウォレットの場所の問題のようです。ウォレットの場所でウォレットが開いていることを確認し(cwallet.sso)、mkstoreユーティリティを使用してこのウォレットに正しい資格情報が含まれていることを確認します。正しい場所を指しているかどうか確認してください。 – Maverick
パスは正しいですが、そこにはcwallet.ssoがあります。さらに、mkstoreユーティリティを使用してキーストアの管理をテストし、XEのエントリが存在する –