【发布时间】:2019-08-06 08:47:05
【问题描述】:
我想返回N1qlQueryResult 作为我REST API 的回复。下面是代码:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody ResponseEntity<?> get() {
List<N1qlQueryRow> result = null;
try {
Cluster cluster = CouchbaseCluster.create("localhost");
Bucket bucket = cluster.openBucket("myBucket", "xyz");
bucket.bucketManager().createN1qlPrimaryIndex(true, false);
N1qlQueryResult queryResult = bucket.query(N1qlQuery.simple("select * FROM myBucket"));
queryResult.forEach(System.out::println);
result = queryResult.allRows();
} catch (final Exception exception) {
exception.printStackTrace();
}
return ResponseEntity.ok(result);
}
我收到错误消息:
无法写入内容:找不到类的序列化程序 com.couchbase.client.java.query.DefaultN1qlQueryRow 并且没有属性 发现要创建 BeanSerializer(为避免异常,禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用链: java.util.ArrayList[0]);嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:没有序列化程序 为类 com.couchbase.client.java.query.DefaultN1qlQueryRow 找到 并且没有发现创建 BeanSerializer 的属性(以避免 异常,禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过 参考链:java.util.ArrayList[0])
解决办法是什么?我想以JSON 的形式返回响应。
【问题讨论】:
标签: java json spring nosql couchbase