我遇到了从 Jython 脚本调用的 JDBC 连接器的问题。
我想使用 Wallet 连接到 Oracle 服务器。这是连接部分:
walletLocation=str(os.environ['HOME']+"./oracle")
System.setProperty("oracle.net.tns_admin", str(os.environ['TNS_ADMIN']))
System.setProperty("oracle.net.wallet_location", str("(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY="+walletLocation+")))"))
url = "jdbc:oracle:thin:/@myService";
ods = OracleDataSource()
ods.setURL(url)
ocon = ods.getConnection()
结果:java.sql.SQLException: ORA-01017: invalid username/password; 登录被拒绝
- 设置了 TNS_ADMIN 并且 tnsnames.ora 包含 myService 的定义
- sqlnet.ora 包含 WALLET_LOCATION
- 我可以使用以下命令连接到我的 Oracle 服务器:sqlplus /@myService
现在,如果我将这些属性添加到我的连接中:
walletProperties.put("user","oracle_user")
walletProperties.put("password","1234")
ods.setConnectionProperties(walletProperties)
连接正常.. JDBC 正确读取了 tnsnames.ora 中的“myService”。
我的感觉是没有使用属性“oracle.net.wallet_location”......
有人有解决这个谜题的线索吗?
非常感谢