我正在尝试创建一个Java适配器,以使用https从api“ https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22”中获取json数据。 我尝试使用:
@GET
@Path("/unprotected")
@Produces(MediaType.TEXT_PLAIN)
@OAuthSecurity(enabled = false)
public String unprotected() {
StringBuffer content = new StringBuffer();
logger.info("fucntion caller");
try {
System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
URL url = new URL(
"https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22");
URLConnection con = (URLConnection) url.openConnection();
logger.info("responce status");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
content.append(inputLine);
logger.info("MYFind Data" + content.toString());
in.close();
} catch (Exception e) {
logger.info("Custom Error" + e.getMessage());
}
return content.toString();
}
在日志文件中获取输出:
I FFDC1015I:已创建FFDC事件:“ sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求的目标com.ibm的有效认证路径。 ws.ssl.core.WSX509TrustManager checkServerTrusted“位于ffdc_19.02.06_11.55.08.0.log
[19年6月2日11:55:08:834 IST] 000000e0 com.ibm.ws.ssl.core.WSX509TrustManager E CWPKI0022E:SSL握手失败:具有SubjectDN CN = *。openweathermap.org,OU的签名者= EssentialSSL通配符,OU =已从目标主机发送已验证的域控制。签名者可能需要添加到本地信任存储库C:/Users/Admin/MobileFirst-8.0.0.0/mfp-server/usr/servers/mfp/resources/security/key.jks,位于SSL配置别名defaultSSLConfig中。 SSL握手异常的扩展错误消息是:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径
[6/2/19 11:55:08:842 IST] 000000e0 com.wether.JavaAdapterMainResource I自定义错误java.security.cert.CertificateException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到所请求目标的有效认证路径