尝试使用soap webservice,即“https://”类型。在我的AppConfig.java中设置以下系统属性。
@PostConstruct
public void init(){
Security.setProperty("ssl.SocketFactory.provider",
"com.ibm.jsse2.SSLSocketFactoryImpl");
Security.setProperty("ssl.ServerSocketFactory.provider",
"com.ibm.jsse2.SSLServerSocketFactoryImpl");
System.setProperty("java.protocol.handler.pkgs",
"com.ibm.net.ssl.internal.www.protocol");
try {
if(trustStore!= null){
File certFile = new File(trustStore);
if(certFile.exists()){
System.setProperty("https.protocols", "SSLv3");
System.setProperty("javax.net.ssl.trustStore", trustStore);
System.setProperty("javax.net.ssl.trustStorePassword",trustStorePassword);
System.setProperty("javax.net.ssl.keyStore", trustStore);
System.setProperty("javax.net.ssl.keyStorePassword",trustStorePassword);
String trustStoreType = "JKS";
System.setProperty("javax.net.ssl.trustStoreType",trustStoreType);
System.setProperty("javax.net.debug", "SSL");
printSysProps();
}}catch(Exception e){...}
请帮我解决此问题。
答案 0 :(得分:1)
此错误将返回,因为Java的更高版本默认情况下禁用SSLv3协议。因此,当您尝试在代码中设置和使用SSLv3协议时,它会因为它被禁用而抱怨。
SSLv3不再被认为是安全的,所以不应该使用它。如果您尝试与之通信的服务器支持更新的更安全的TLS协议,我建议您尝试这些协议。
我不会在Java安装上启用SSLv3,因为除非您绝对需要,否则其他评论建议您可以这样做。
答案 1 :(得分:0)
您可以尝试设置系统属性,如下所示:
System.setProperty("com.ibm.jsse2.disableSSLv3", "false");