在 Apache Camel Elasticsearch 中使用 GET 请求时出现异常

Exception while using GET request in Apache Camel Elasticsearch

描述:我必须使用 Apache camel 从 Elasticsearch 5.4 读取特定字段。当我使用下面的代码时,我无法查看响应

异常:从 XContent 构建 toString 时出错:com.fasterxml.jackson.core.JsonGenerationException:无法启动对象,需要字段名称(上下文:对象)

代码:

from("direct:start")
     .process(exchange -> {
        GetRequest a = new GetRequest("example", "doc", "1");
        exchange.getIn().setBody(a);
      })
     .to("elasticsearch5://elastic?operation=GET_BY_ID&ip=<ip>&port=9300")
     .log("${body}");

完成堆栈跟踪:

(route1) elasticsearch5://elastic?ip=&operation=GET_BY_ID&port=9300 --> log[messageId] <<< Pattern:InOnly, Headers:{breadcrumbId=ID-NLVHPRAAB02027-53300-1510315731625-0-1}, BodyType:org.elasticsearch.action.support.PlainActionFuture, Body:Error building toString out of XContent: com.fasterxml.jackson.core.JsonGenerationException: Can not start an object, expecting field name (context: Object) at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:1897) at com.fasterxml.jackson.core.json.JsonGeneratorImpl._reportCantWriteValueExpectName(JsonGeneratorImpl.java:244) at com.fasterxml.jackson.core.json.UTF8JsonGenerator._verifyValueWrite(UTF8JsonGenerator.java:1033) at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeStartObject(UTF8JsonGenerator.java:313) at org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeStartObject(JsonXContentGenerator.java:161) at org.elasticsearch.common.xcontent.XContentBuilder.startObject(XContentBuilder.java:217) at org.elasticsearch.index.get.GetResult.toXContent(GetResult.java:251) at org.elasticsearch.action.get.GetResponse.toXContent(GetResponse.java:158) at org.elasticsearch.common.Strings.toString(Strings.java:901) at org.elastic... [Body clipped after 1000 chars, total length is 4350]

您使用的是 camel-elasticsearch5 组件吗?在那种情况下,你需要做这样的事情:

https://github.com/apache/camel/blob/master/components/camel-elasticsearch5/src/test/java/org/apache/camel/component/elasticsearch5/ElasticsearchGetSearchDeleteExistsUpdateTest.java#L45-L57