执行SSL请求时,AsyncHttpClient出现意外的I / O异常

时间:2016-12-21 14:10:22

标签: java scala playframework netty

我的公司使用Play框架和Scala作为我们的后端服务器。最近我们一直遇到服务器问题。在向远程API发出安全(SSL)请求时,我们将获得以下异常。 似乎是关于SSL的问题,但我不确定。 我们一个月前遇到了类似的问题,并设置了标志:

-J-XX:-UseAESIntrinsics -DXX:-UseAESIntrinsics

似乎有所帮助。现在问题又来了。

更多信息: - 播放2.5.9 - Scala 2.11.8 - 服务器操作系统:Centos 6.8 - JVM 1.8.0_25

例外:

  • AsyncHttpClient-2-4 - 2016-12-21 03:59:17,434 - [debug] - 来自org.asynchttpclient.netty.handler.HttpHandler - 通道上出现意外的I / O异常[id:0x9ad15e31,L:/ [IP_ADDRESS:PORT - R:SERVER / IP_ADDRESS:443] java.lang.NullPointerException:null 在java.lang.System.arraycopy(本机方法) 在com.sun.crypto.provider.GCTR.reset(GCTR.java:125) 在com.sun.crypto.provider.GCTR.doFinal(GCTR.java:116) 在com.sun.crypto.provider.GaloisCounterMode.doLastBlock(GaloisCounterMode.java:343) 在com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:511) 在com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1023) 在com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:960) 在com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:479) 在javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:830) 在javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730) 在javax.crypto.Cipher.doFinal(Cipher.java:2416) at sun.security.ssl.CipherBox.decrypt(CipherBox.java:535) at sun.security.ssl.EngineInputRecord.decrypt(EngineInputRecord.java:200) at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:968) at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:901) at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:775) 在javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624) 在io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1094) 在io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:966) at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:900) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345) at io.netty.channel.DefaultChannelPipeline $ HeadContext.channelRead(DefaultChannelPipeline.java:1294) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352) 在io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911) at io.netty.channel.nio.AbstractNioByteChannel $ NioByteUnsafe.read(AbstractNioByteChannel.java:131) 在io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:611) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:552) 在io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:466) 在io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438) at io.netty.util.concurrent.SingleThreadEventExecutor $ 2.run(SingleThreadEventExecutor.java:140) at io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) 在java.lang.Thread.run(Thread.java:745)

有谁知道问题可能是什么以及我们如何解决?

提前致谢,

施洛米。

1 个答案:

答案 0 :(得分:1)

我认为你应该升级你的java版本。 1.8.0_25很老,从堆栈跟踪看起来像JDK bug。升级到最新的Java 8版本并查看它是否仍然存在(我怀疑答案是否定的;))