elasticsearch java.io.IOException: 远程主机强迫关闭了一个现有的连接。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/frankcheng5143/article/details/83352654

今天在自定义分词的时候用http方法调用了一下在线ik分词,结果就出现了

[2018-10-24T22:56:03,542][WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [BGZTprP] caught exception while handling client http traffic, closing connection [id: 0xe4dfb70d, L:/127.0.0.1:9200 - R:/127.0.0.1:49530]
java.io.IOException: 远程主机强迫关闭了一个现有的连接。
        at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[?:?]
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) ~[?:?]
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[?:?]
        at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[?:?]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[?:?]
        at io.netty.buffer.PooledHeapByteBuf.setBytes(PooledHeapByteBuf.java:261) ~[netty-buffer-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1106) ~[netty-buffer-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:343) ~[netty-transport-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:545) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.16.Final.jar:4.1.16.Final]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]

经过分析是自己写的HttpUtil的问题。
原因分析
HttpUtil在单元测试的时候jvm运行结束,而HttpUtil里面有一个CloseableHttpClient,jvm结束的时候CloseableHttpClient没有正常关闭导致的,优化了一下代码,在使用完释放掉CloseableHttpClient,也就是调用一下close()方法。

猜你喜欢

转载自blog.csdn.net/frankcheng5143/article/details/83352654