Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的HttpMethodDirectory executeWithRetry和SSLProtocolException_Java_Java 11_Openjdk 11_Sslexception - Fatal编程技术网

Java中的HttpMethodDirectory executeWithRetry和SSLProtocolException

Java中的HttpMethodDirectory executeWithRetry和SSLProtocolException,java,java-11,openjdk-11,sslexception,Java,Java 11,Openjdk 11,Sslexception,我正在使用httpclient-3.0库将数据解析到云。当我在本地计算机(Windows 10)上运行应用程序时,它工作正常,数据被解析到服务器,我收到成功响应,但当我将其部署到运行在Windows server 2012 R2上的服务器上时,它抛出以下错误。我也使用了相同的JDK,我尝试了很多方法,比如在java.security JDK文件中添加-Djdk.tls.client.protocols=“TLSv1,TLSv1.1,TLSv1.2”,但问题仍然没有得到解决 这是我的代码 我感谢任

我正在使用httpclient-3.0库将数据解析到云。当我在本地计算机(Windows 10)上运行应用程序时,它工作正常,数据被解析到服务器,我收到成功响应,但当我将其部署到运行在Windows server 2012 R2上的服务器上时,它抛出以下错误。我也使用了相同的JDK,我尝试了很多方法,比如在java.security JDK文件中添加-Djdk.tls.client.protocols=“TLSv1,TLSv1.1,TLSv1.2”,但问题仍然没有得到解决

这是我的代码 我感谢任何快速的帮助和指导

这是我得到的错误

Mar 11, 2020 4:23:08 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: I/O exception (javax.net.ssl.SSLProtocolException) caught when processing
request: Connection reset
Mar 11, 2020 4:23:08 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: Retrying request
Mar 11, 2020 4:23:23 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: I/O exception (javax.net.ssl.SSLProtocolException) caught when processing
request: Connection reset
Mar 11, 2020 4:23:23 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: Retrying request
Mar 11, 2020 4:23:38 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: I/O exception (javax.net.ssl.SSLProtocolException) caught when processing
request: Connection reset
Mar 11, 2020 4:23:38 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: Retrying request
javax.net.ssl.SSLProtocolException: Connection reset
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:126)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.ja
va:321)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.ja
va:264)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.ja
va:259)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:137)

        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:11
52)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocke
tImpl.java:1063)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl
.java:402)
        at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketIm
pl.java:716)
        at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSoc
ketImpl.java:970)
        at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStre
am.java:81)
        at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.jav
a:142)
        at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:15
3)
        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequ
estBody(EntityEnclosingMethod.java:502)
        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodB
ase.java:1973)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.j
ava:993)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Htt
pMethodDirector.java:397)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMe
thodDirector.java:170)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:396)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:324)
        at af.aib.etl.AttendanceETL.fetchAndParseAttendanceRecord(AttendanceETL.
java:99)
        at af.aib.attendance.ApplicationStartPoint.main(ApplicationStartPoint.ja
va:28)
Caused by: java.net.SocketException: Connection reset
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)

        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)

        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRe
cord.java:448)
        at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInput
Record.java:165)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)

本地代理和服务器代理是不同的,这就是为什么它在我的本地计算机上运行正常,但在服务器上运行不正常的原因。一旦我将代理更改为服务器使用的特定代理,那么应用程序就可以正常工作。

运行该程序时使用的确切Java版本是什么?我在Java 11.0.3/4/5中也遇到了类似的问题,但在11.0.6中,它运行起来没有问题。我在两个版本中都得到了相同的结果。我认为这不是Java版本问题。为了识别SSL和TLS问题,您应该使用启用SSL调试的非工作系统执行测试程序:
Mar 11, 2020 4:23:08 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: I/O exception (javax.net.ssl.SSLProtocolException) caught when processing
request: Connection reset
Mar 11, 2020 4:23:08 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: Retrying request
Mar 11, 2020 4:23:23 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: I/O exception (javax.net.ssl.SSLProtocolException) caught when processing
request: Connection reset
Mar 11, 2020 4:23:23 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: Retrying request
Mar 11, 2020 4:23:38 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: I/O exception (javax.net.ssl.SSLProtocolException) caught when processing
request: Connection reset
Mar 11, 2020 4:23:38 PM org.apache.commons.httpclient.HttpMethodDirector execute
WithRetry
INFO: Retrying request
javax.net.ssl.SSLProtocolException: Connection reset
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:126)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.ja
va:321)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.ja
va:264)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.ja
va:259)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:137)

        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:11
52)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocke
tImpl.java:1063)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl
.java:402)
        at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketIm
pl.java:716)
        at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSoc
ketImpl.java:970)
        at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStre
am.java:81)
        at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.jav
a:142)
        at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:15
3)
        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequ
estBody(EntityEnclosingMethod.java:502)
        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodB
ase.java:1973)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.j
ava:993)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Htt
pMethodDirector.java:397)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMe
thodDirector.java:170)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:396)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:324)
        at af.aib.etl.AttendanceETL.fetchAndParseAttendanceRecord(AttendanceETL.
java:99)
        at af.aib.attendance.ApplicationStartPoint.main(ApplicationStartPoint.ja
va:28)
Caused by: java.net.SocketException: Connection reset
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)

        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)

        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRe
cord.java:448)
        at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInput
Record.java:165)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)