无法使用 Oracle Wallet 在 IntelliJ IDEA 中配置数据源

Posted

技术标签:

【中文标题】无法使用 Oracle Wallet 在 IntelliJ IDEA 中配置数据源【英文标题】:Cannot configure Data Source in IntelliJ IDEA using Oracle Wallet 【发布时间】:2020-08-03 12:56:56 【问题描述】:

我有一个可用的 Oracle 钱包。我正在尝试在 IntelliJ IDEA(和/或 DataGrip)中配置一个使用 TNS 连接类型的数据源。在General 选项卡下,我用Oracle Wallet 的位置填充了TNSADMIN 字段(仅包含文件:cwallet.ssoewallet.p12sqlnet.oratnsnames.ora...没有别的),TNS name 带有实际的数据源名称。

有一个环境变量WALLET_HOME 也指向确切的位置。

此外,我还修改了(在 Advanced 选项卡下)键 oracle.net.tns_adminoracle.net.wallet_location 的值分别为:$WALLET_HOME(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=$WALLET_HOME)))

这就是我在应用程序中连接到 Oracle 数据库所要做的。

看起来它可能有效,但我收到了以下错误消息:[99999][17167] PKI classes not found. To use 'connect /' functionality, oraclepki.jar must be in the classpath: java.lang.NoClassDefFoundError: oracle/security/pki/OracleWallet.

但是我这辈子找不到在那个屏幕上增加 Java 类路径的地方。我不能提供-classpath 选项作为VM options(在Advanced 选项卡下)的一部分,因为它会覆盖它。

使用此设置的人可以在这里解释一下吗?

【问题讨论】:

您的 Oracle 版本是多少?文件可以直接添加到驱动程序属性中的驱动程序文件部分。 你是对的!在Data Sources and Drivers 窗口中有一个Drivers 部分,您可以在其中添加更多文件和/或子目录。对我来说有效的是添加oraclepki.jar 文件(位于../oracle12c2_client_64/product/12.2.0/client_1/jlib/oraclepki.jar)。如果您将评论添加为答案,我会接受。 【参考方案1】:

要将文件添加到驱动程序,请按照以下说明操作:

    导航到文件 |数据源或按 Ctrl+Alt+Shift+S。 在“数据源和驱动程序”对话框中,单击要添加文件的驱动程序条目。 在驱动程序文件窗格中,单击 (+) 图标(添加)并选择自定义 JAR。

【讨论】:

【参考方案2】:

DataGrip 2021.1 为 Oracle 21.1 JDBC 驱动程序提供所有必需的 jar 文件。

另外,请阅读 DataGrip 帮助文章Connect to Oracle Cloud by using wallets

【讨论】:

虽然它们都非常相似,但我确实使用的是 IntelliJ IDEA。可能 DataGrip 解决方案适用于它。 它们很相似。 DataGrip 作为 IntelliJ IDEA 的插件。

以上是关于无法使用 Oracle Wallet 在 IntelliJ IDEA 中配置数据源的主要内容,如果未能解决你的问题,请参考以下文章

转://oracle Wallet在expdp/impdp中使用场景

oracle加密--wallet

Oracle Wallet初探

从现有 PKCS#12 密钥库创建 Oracle Wallet

oracle TDE

无法验证由 sol-wallet-adapter 签名的消息