诡异的异常Cannot retry request with a non-repeatable request entity

来源:互联网 发布:自学素描的软件 编辑:程序博客网 时间:2024/06/05 07:04

越急越乱 越想早走,越让你走不了

场景:
昨晚,使用solrj全量同步更新索引数据……生产环境
肚子饿……家里冰箱中还有半个西瓜…

异常信息如下:

org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: http://localhost:8080/solr/sdr 404        at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:566)        at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:210)        at Caused by: org.apache.http.client.ClientProtocolException        at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:867)        at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:452)        ... 8 moreCaused by: org.apache.http.client.NonRepeatableRequestException: Cannot retry request with a non-repeatable request entity.  The cause lists the reason the original request failed.        at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:656)        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486)        at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)        ... 12 moreCaused by: java.net.SocketException: Broken pipe        at java.net.SocketOutputStream.socketWrite0(Native Method)        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)        at java.net.SocketOutputStream.write(SocketOutputStream.java:159)        at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:181)        at org.apache.http.impl.io.ChunkedOutputStream.flushCacheWithAppend(ChunkedOutputStream.java:124)        at org.apache.http.impl.io.ChunkedOutputStream.write(ChunkedOutputStream.java:181)        at org.apache.http.entity.InputStreamEntity.writeTo(InputStreamEntity.java:132)        at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:89)        at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108)        at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:117)        ... 14 more

1.首先被HTTP 404 迷惑了一时

2.google查找:
Cannot retry request with a non-repeatable request entity. The cause lists the reason the original request failed.
有同学遇到是因为jdk版本错误导致。
fuck,我还真在打包编译时使用了jre7(应该使用jre8)。但,重新打包依然不行…..

3.淡定,淡定…….再次细心查看异常栈信息,发现:

org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:117)

“serialize”序列化…….首先想到服务端和客户端实体Bean相关jar包是否同步更新一致,经确认一致……jdk也一致。

“数据库TINYINT,怎么经过jdbc过变为true和false了?”突然想起开发测试环境时反馈。只是异常信息提示很明确。

生产库,把对应的2个字段TINYINT变为INT…………….TM,就好了

阅读全文
1 0