我有基于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.
我检查了几个答案,但无法解决此问题。
答案 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。如果你搞清楚了,请告诉我们。