我正在尝试在Oracle Sql Developer中从Java发出HTTP GET请求。
在我的电脑上一切正常。
唯一不起作用的是,当我访问https子域时,它会出现System.setProperty ("javax.net.ssl.trustStore", "/path/jdk/jdk6/lib/security/cacerts.jks");
错误(例如,如果我访问https://www.example.com它有效,但如果我访问https://subdomain.example.com它失败)
我当时做的是在Java缓存中添加证书,然后就可以了。
但是,当我在服务器上执行此操作时,要使用PL / SQL调用Java函数从SQL Developer执行此操作,它会失败,并且我对证书执行了同样的操作。
我不知道的是,如果你在sql developer的Java中引用cacerts,因为在我的机器中我必须引用它(-Djavax.net.ssl.keyStore = C:\ Oracle \ Middleware \ Oracle_Home \ oracle_common \ jdk \ jre \ lib \ security \ cacerts)
如果我在Java代码中执行此操作,则会一直出错:
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
try {
if (error.networkResponse != null && error.networkResponse.data != null) {
String data = new String(error.networkResponse.data, "UTF-8");
int statusCode = error.networkResponse.statusCode;
Log.e(LOG_TAG, "CustomRequest: Parsed Error Response = " + data);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我怎么知道它是否拿到证书?
我的机器:Java 1.7和1.8可以工作 服务器:Java 1.6不起作用
问候和感谢
答案 0 :(得分:0)
这是Java 6的一个问题,因此在Java 7和Java 8中运行良好。