- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经配置了一个 Oracle 11g 数据库服务器,使用钱包和自签名证书与 SSL 一起工作。钱包已启用自动登录。我使用来自另一台机器的客户端 (sqlplus) 测试了连接,它工作正常。
现在我正在尝试使用 Java JDBC 连接到数据库。
我有两个代码版本,都不起作用。第一个尝试使用 SSO 选项:
Connection connection = null;
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=192.168.200.191)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=DBSERVICE)))";
Properties props = new Properties();
props.setProperty("user", "dbuser");
props.setProperty("password", "dbpass");
//Single sign on
props.setProperty("javax.net.ssl.trustStore", "C:\\oracle\\wallet\\cwallet.sso");
props.setProperty("javax.net.ssl.trustStoreType","SSO");
/* Load the database driver */
try
{
Security.addProvider(new oracle.security.pki.OraclePKIProvider());
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection(url,props);
if (connection != null) {
System.out.println("You made it, take control your database now!");
} else {
System.out.println("Failed to make connection!");
}
}
catch (SQLException ex) {
ex.printStackTrace();
}
在这个版本中我得到了
java.io.IOException: Wallet version not supported
at oracle.security.pki.OracleSSOKeyStoreSpi.engineLoad(OracleSSOKeyStoreSpi)
第二种是使用钱包本身:
Connection connection = null;
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=192.168.200.191)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=DBSERVICE)))";
Properties props = new Properties();
props.setProperty("user", "dbuser");
props.setProperty("password", "dbpass");
//with password
props.setProperty("javax.net.ssl.trustStore", "C:\\oracle\\wallet\\ewallet.p12");
props.setProperty("javax.net.ssl.trustStorePassword","WalletPasswd1234");
props.setProperty("javax.net.ssl.trustStoreType","PKCS12");
props.setProperty("oracle.net.ssl_cipher_suites","(SSL_RSA_WITH_3DES_EDE_CBC_SHA)");
/* Load the database driver */
try
{
Security.addProvider(new oracle.security.pki.OraclePKIProvider());
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection(url,props);
if (connection != null) {
System.out.println("You made it, take control your database now!");
} else {
System.out.println("Failed to make connection!");
}
}
catch (SQLException ex) {
ex.printStackTrace();
}
在这次尝试中我得到了
java.io.IOException: Wallet version not supported
at oracle.security.pki.OracleSSOKeyStoreSpi.engineLoad(OracleSSOKeyStoreSpi)
at java.security.KeyStore.load(Unknown Source)
at oracle.net.nt.CustomSSLSocketFactory.getTrustManagerArray(CustomSSLSocketFactory.java:406)
我已将以下 JAR 添加到项目中(不确定我是否需要它们):
请告诉我如何解决这个问题,谢谢。
最佳答案
请务必使用 12.1.0.2 中的 oraclepki.jar 和 ojdbc6.jar,这是迄今为止的最新版本。如果问题仍然存在,您可以尝试使用 orapki wallet pkcs12_to_jks
将您的钱包转换为 jks 文件。 .完整的命令行如下所示(将 <> 之间的值替换为您自己的值):
orapki wallet pkcs12_to_jks -wallet <wallet_directory> -pwd <wallet_password> -jksKeyStoreLoc <keystore.jks> -jksKeyStorepwd <keystore_jks_password> -jksTrustStoreLoc <truststore.jks> -jksTrustStorepwd <truststore_jks_password>
将 jks 文件用于 keystore 和信任库将比钱包更容易。您只需要配置 javax.net.ssl.trustStore 和 javax.net.ssl.keyStore 属性。您甚至不需要额外的 jar,例如 oraclepki.jar 或 osdt jar。
关于带有 SSL : Wallet version not supported or the trustAnchors parameter must be non-empty 的 Java JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41286863/
首先,我什至不知道从哪里开始。我试过通读 Apple 和 Google 的文档,但仍然没有正确的答案。 我的客户已经在他们的网站上展示了优惠券,他们的客户可以打印或在手机上截图,带进商店扫描要应用的折
我看到 % 的 Google 电子钱包交易失败。我得到的错误信息是 You cancelled this order. Reason: Other. Message sent to the custo
我是新的 Android 设备,并且对支付部分更加陌生,我正在通过此链接将 Gpay 实现到我的应用程序中 https://developers.google.com/pay/api/android/
基本知识 公钥加密算法使用的是成对的密钥:公钥和私钥,公钥可以公开,私钥不能被公开。比特币钱包实际上是一个密钥对,当你安装 一个钱包应用,或者是使用一个比特币客户端来生成一个新地址是,他就会为你生
本文整理了Java中org.bitcoinj.wallet.WalletProtobufSerializer类的一些代码示例,展示了WalletProtobufSerializer类的具体用法。这些代
我的任务是将银行卡添加到苹果钱包,我知道我需要获得苹果的许可。告诉我, map 需要什么数据才能添加到苹果钱包?编号,cvc,持有人姓名......? 我正在尝试创建一个 PKAddPaymentPa
我正在开发一款手机银行应用程序,只想将一张卡添加到 Apple Wallet。这是我的代码: Card *card = ...; BOOL mayAddCard = [PKAddPaymentPass
我已经在苹果设备上创建了优惠券的静态版本。现在我想直接在我的优惠券卡上更新我的新值,当通过 API 调用更新我的数据库中的值时。 我知道这是可能的,就像登机牌一样,座位号更改时直接在电子登机牌上更改。
我在我的 Windows 环境中安装了 Oracle XE,我创建了一个程序来发送 SMS(调用 WS)问题是我有带 HTTPS 的 url(带 ssl 加密)所以我需要添加证书,基于 reasear
我在 PL/SQL 中编写了以下代码,用于从 Oracle 11g 调用第 3 方 API。 Begin -- preparing Request... l_http_request := U
我希望在我的移动网站上有一个链接,一旦从 iOS 设备单击该链接,就会打开 Apple 钱包应用程序。 我知道有一些questions about this subject当谈到我构建的应用程序时,但
我一直将钱包存储在项目的资源文件夹中,并且能够在 eclipse 中使用以下字符串访问它 final static String DB_URL = "jdbc:oracle:thin:@db_high
我是比特币世界的新手,我很难理解基本比特币服务的钱包实现的基础知识。 基本上,我想要: 用户有一个个人钱包(“现场”钱包,跟踪他们的余额) 用户可以在该地址/钱包中存款/取款 Web 服务能够代表用户
我使用 Oracle 钱包存储我连接的数据库的密码。我们的密码政策要求我们经常更改密码,以至于我想编写更改脚本。我有一个可以自己更改数据库密码的批处理文件,但我也想编写钱包更改脚本。问题是调用 mks
我正在尝试使用 Android Studio 将 Stripe 集成到我的 Android 应用程序中。这是我的付款布局: 因此,在上面的代码中,我收到错误 wallet:enviroment="
我是 iOS 开发新手,希望使用 PassKit 库开发一个小项目。 经过大量搜索(Apple 文档、stackoverflow)后,我似乎无法清楚地了解我的问题的可能答案: “是否可以访问不是我创建
兑换钱包通行证后是否可以自动下载第二个钱包通行证。我们已经看到这是可能的,但找不到任何解决方案。据我所知,无论您更新还是续订通行证,我们的 API 只能向我们的服务器返回一种通行证。我们附上了一个视频
在我的网站上,我使用的是 Java Tomcat,我有一个应用程序大战,其中包含我的产品的网页和用于购买与 Google 电子钱包集成的产品的代码。 我现在添加了一个新产品,其相关网页部署在另一个 w
我如何使用 Apple Wallet 和 iOS API 为咖啡店创建(是否可能)折扣卡? 我想要得到的效果如下:iOS 用户应该在 Apple Wallet 中有一张个人卡,他们会把它带到咖啡店。在
是否可以获取连接到 Apple Wallet 的卡列表?或者检查卡是否连接到 AppleWallet? Stripes API 具有此功能。但是有没有一种原生的方式来实现这个任务? 我找到了 deve
我是一名优秀的程序员,十分优秀!