有一个用于调用端点的APIGEE网关,我在调用服务时将JKS文件加载到Keystore,我成功地从本地获得了响应。但是当詹金的工作给我提供相同的代码时
"java.net.ConnectException: Connection timed out (Connection timed out)" error with the same proxy and certificates used.
这里可能是什么问题?有什么变化可以解决詹金(Jenkin)的问题?
感谢您的帮助!
已应用代理并在我的本地环境中正常工作。
以下代码将帮助我返回已加载JKS文件的SSLConfig。
public static SSLConfig getSSLConfig() throws IOException{
KeyStore keyStore = null;
SSLConfig config = null;
File sslFile = new File("cx.p12");
System.out.println("SSL_File:: "+sslFile.getAbsolutePath());
try {
keyStore = KeyStore.getInstance("JKS");
keyStore.load(new FileInputStream(sslFile),
"test123".toCharArray());
if (keyStore != null) {
org.apache.http.conn.ssl.SSLSocketFactory clientAuthFactory = new org.apache.http.conn.ssl.SSLSocketFactory(keyStore, "test123");
config = new SSLConfig().with().sslSocketFactory(clientAuthFactory).and().allowAllHostnames();
}
} catch (Exception ex) {
System.out.println("Error while loading keystore >>>>>>>>>");
ex.printStackTrace();
}
return config;
}
//并且,将使用必需的proxy
和SSLConfig
调用服务。这使我在本地取得了成功。
EncoderConfig encoderconfig = new EncoderConfig();
RestAssured.config = RestAssured.config().sslConfig(SSLHandshakeUtility.getSSLConfig());
Response response = RestAssured.given().
log()
.all()
.config(RestAssured.config().encoderConfig(encoderconfig.appendDefaultContentCharsetToContentTypeIfUndefined(false)))
.proxy(proxy,port)
.header("Content-Type", "application/json")
.header("apiKey",apikey)
.header("ENV","DEV")
.body(payload)
.post(url);
预期:该服务的响应类似于Jenkin的工作在本地运行。
实际情况: java.net.ConnectException: Connection timed out (Connection timed out)
来自詹金的工作。