连接关闭,检测到 EOF
Connection closed, EOF detected
我想 post 一些 json 数据从启用 ADFS SSO 的 weblogic 服务器到 https url(码头服务器),但我收到以下异常
java.io.IOException: Connection closed, EOF detected
at weblogic.socket.JSSEFilterImpl.handleUnwrapResults(JSSEFilterImpl.java:637)
at weblogic.socket.JSSEFilterImpl.unwrapAndHandleResults(JSSEFilterImpl.java:515)
at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:96)
at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:75)
at weblogic.socket.JSSEFilterImpl.write(JSSEFilterImpl.java:448)
at weblogic.socket.JSSESocket$JSSEOutputStream.write(JSSESocket.java:93)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)
at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:192)
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:433)
at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
下面是片段
URL urlObject = new URL(url);
HttpURLConnection httpConnection = (HttpURLConnection) urlObject.openConnection();
httpConnection.setRequestMethod("POST");
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
httpConnection.addRequestProperty("Content-Type", "application/xml");
OutputStreamWriter writer = new OutputStreamWriter(httpConnection.getOutputStream());
writer.write(paramJSON.toString());
writer.flush();
String line;
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream()));
while ((line = reader.readLine()) != null)
{
buffer.append(line);
}
writer.close();
reader.close();
int status = httpConnection.getResponseCode();
httpConnection.disconnect();
这适用于两个 http url,即未启用 SSL
如果我们使用Weblogic服务器,我们必须定义:
set JAVA_OPTIONS=%JAVA_OPTIONS% -DUseSunHttpHandler=true
...在服务器域内的 class 路径中。
这将告诉 weblogic 服务器使用 Sun Http Handlers 而不是安装它自己的。
我想 post 一些 json 数据从启用 ADFS SSO 的 weblogic 服务器到 https url(码头服务器),但我收到以下异常
java.io.IOException: Connection closed, EOF detected
at weblogic.socket.JSSEFilterImpl.handleUnwrapResults(JSSEFilterImpl.java:637)
at weblogic.socket.JSSEFilterImpl.unwrapAndHandleResults(JSSEFilterImpl.java:515)
at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:96)
at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:75)
at weblogic.socket.JSSEFilterImpl.write(JSSEFilterImpl.java:448)
at weblogic.socket.JSSESocket$JSSEOutputStream.write(JSSESocket.java:93)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)
at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:192)
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:433)
at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
下面是片段
URL urlObject = new URL(url);
HttpURLConnection httpConnection = (HttpURLConnection) urlObject.openConnection();
httpConnection.setRequestMethod("POST");
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
httpConnection.addRequestProperty("Content-Type", "application/xml");
OutputStreamWriter writer = new OutputStreamWriter(httpConnection.getOutputStream());
writer.write(paramJSON.toString());
writer.flush();
String line;
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream()));
while ((line = reader.readLine()) != null)
{
buffer.append(line);
}
writer.close();
reader.close();
int status = httpConnection.getResponseCode();
httpConnection.disconnect();
这适用于两个 http url,即未启用 SSL
如果我们使用Weblogic服务器,我们必须定义:
set JAVA_OPTIONS=%JAVA_OPTIONS% -DUseSunHttpHandler=true
...在服务器域内的 class 路径中。
这将告诉 weblogic 服务器使用 Sun Http Handlers 而不是安装它自己的。