java.net.SocketException:软件导致连接中止:recv因Java 8而失败

时间:2015-03-09 15:15:41

标签: java socketexception

我有基于java swing的客户端应用程序,它在尝试调用服务器应用程序时抛出“java.net.SocketException:软件导致连接中止:recv failed”错误。 当我的客户端应用程序在JRE 8上运行时,它会抛出此错误,但是当它运行Java 7时,我没有看到此问题。 错误就行了。 InputStreamReader是= new InputStreamReader(conn.getInputStream(),“UTF8”);

我的服务器代码在Jboss服务器上的java 6上运行。

以下是我的客户代码。

HttpURLConnection conn = (HttpURLConnection) teamupUrl.openConnection();
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "text/xml; charset=\"utf-8\"");
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.connect();
        OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "UTF8");
        out.write(xmlMsg);
        out.close();        
        // MDH - changed to use a temporary file to hold the transaction response, to avoid
        // out of memory errors with large files
        InputStreamReader is = new InputStreamReader(conn.getInputStream(), "UTF8");// error is throw here.

我检查了几个答案,但无法解决此问题。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。我的URL使用https,并设置了javax.net.ssl.trustStore和javax.net.ssl.trustStorePassword系统属性。您的网址是否为https?如果是这样,它可能与java 8安全性的变化有关。这是一篇关于版本之间差异的文章:http://www.oracle.com/technetwork/java/javase/documentation/cve-2014-3566-2342133.html。如果你搞清楚了,请告诉我们。