java.lang.NoSuchMethodError: org.elasticsearch.action.index.IndexRequest.ifSeqNo()J
原因是elasticsearch-rest-high-level-client依賴elasticsearch
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.1.1</version> </dependency>
把下面的依賴加上就行了,另外注意版本的對應關系
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.1.1</version> </dependency>
org.elasticsearch.ElasticsearchException: Elasticsearch exception [type=date_time_parse_exception, reason=Text '2014-03-16 18:00:00' could not be parsed, unparsed text found at index 10]
原面在於一開始創建索引和文檔的時候指定了"yyyy-MM-dd",而在新增或更新的時候卻使用了"2014-03-16 18:00:00",由於不匹配對應格式所以報的日期解析異常.
補充說明: 在給elasticSearch傳日期時,只需要要傳規定格式的純字符串即可, 且不能直接傳java.Util.Date對象
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'receiveEsMessage' in vhost '/', class-id=50, method-id=10)
意為rabbitMQ中消息者想定位名為"receiveEsMessage "的隊列,卻不存在 , 所以我們需要先定義此隊列再可以正常使用.
但是當我們都使用@RabbitListener注解來聲明交換器, 隊列, 綁定 ,以及消費監聽時, 可能由於Bean先后順序的問題, 也會報以上異常, 此時先注釋 @RabbitListener(queues = {...})注解 , 保留@RabbitListener(bindings = @QueueBinding(...... )注解 , 讓隊列先生成一次之后, 下次就可正常使用了.