为了账号安全,请及时绑定邮箱和手机立即绑定

javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间

/ 猿问

javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间

HUH函数 2019-11-15 10:41:34

我收到javax.net.ssl.SSLHandshakeException:当我尝试通过Internet对Web服务进行HTTPS发布时,握手异常期间远程主机关闭了连接。但是相同的代码可用于其他Internet托管的Web服务。我尝试了很多事情,没有任何帮助。我在这里发布了示例代码。谁能帮我解决这个问题?


public static void main(String[] args) throws Exception {


    String xmlServerURL = "https://example.com/soap/WsRouter";

    URL urlXMLServer = new URL(xmlServerURL);

    // URLConnection supports HTTPS protocol only with JDK 1.4+ 

    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(

            "xxxx.example.com", 8083));

    HttpURLConnection httpsURLConnection = (HttpURLConnection) urlXMLServer

            .openConnection(proxy);

    httpsURLConnection.setRequestProperty("Content-Type","text/xml; charset=utf-8");

    //httpsURLConnection.setDoInput(true);

    httpsURLConnection.setDoOutput(true);

    httpsURLConnection.setConnectTimeout(300000);

    //httpsURLConnection.setIgnoreProxy(false);

    httpsURLConnection.setRequestMethod("POST"); 

    //httpsURLConnection.setHostnameVerifier(DO_NOT_VERIFY); 

    // send request

    PrintWriter out = new PrintWriter(

            httpsURLConnection.getOutputStream());

    StringBuffer requestXML = new StringBuffer();

    requestXML.append(getProcessWorkOrderSOAPXML());   

    // get list of user     

    out.println(requestXML.toString()); 

    out.close();

    out.flush();

    System.out.println("XML Request POSTed to " + xmlServerURL + "\n");

    System.out.println(requestXML.toString() + "\n"); 

    //Thread.sleep(60000);  

    // read response


    BufferedReader in = new BufferedReader(new InputStreamReader( 

            httpsURLConnection.getInputStream()));

    String line;

    String respXML = "";

    while ((line = in.readLine()) != null) {

        respXML += line;

    }

    in.close();


    // output response

    respXML = URLDecoder.decode(respXML, "UTF-8"); 

    System.out.println("\nXML Response\n");

    System.out.println(respXML);

}

实际上,这里有两种情况。当我作为独立的Java程序工作时,会遇到上述异常。但是,当我尝试在weblogic应用程序服务器中执行时,出现以下异常:任何线索可能是什么原因?


查看完整描述

3 回答

?
斯蒂芬大帝

Java 7默认为TLS 1.0,如果不接受该协议,则可能导致此错误。我遇到了Tomcat应用程序和服务器将不再接受TLS 1.0连接的问题。我加了


-Dhttps.protocols=TLSv1.1,TLSv1.2

Java选项,并对其进行了修复。(Tomcat正在运行Java7。)


查看完整回答
反对 2019-11-15
?
慕仰8121524

我遇到了同样的问题,并通过添加以下内容解决了该问题:


System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");

在openConnection方法之前。


查看完整回答
反对 2019-11-15

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信