IMap<String, Service> services = CacheStartupHookProvider.hz.getMap("services");
Deque<String> serviceIdDeque = exchange.getQueryParameters().get("serviceId");
String serviceId = serviceIdDeque == null? "%" : serviceIdDeque.getFirst() + "%";
int page = Integer.valueOf(exchange.getQueryParameters().get("page").getFirst()) - 1;
Deque<String> pageSizeDeque = exchange.getQueryParameters().get("pageSize");
int pageSize = pageSizeDeque == null? 10 : Integer.valueOf(pageSizeDeque.getFirst());
LikePredicate likePredicate = new LikePredicate("serviceId", serviceId);
PagingPredicate pagingPredicate = new PagingPredicate(likePredicate, new ServiceComparator(), pageSize);
pagingPredicate.setPage(page);
Collection<Service> values = services.values(pagingPredicate);
exchange.getResponseHeaders().add(new HttpString("Content-Type"), "application/json");
exchange.getResponseSender().send(Config.getInstance().getMapper().writeValueAsString(values));
The error is
com.fasterxml.jackson.databind.JsonMappingException: Class com.networknt.oauth.cache.model.Service not subtype of [simple type, class java.util.Map$Entry<java.lang.Object,java.lang.Object>] (through reference chain: com.hazelcast.replicatedmap.impl.record.ResultSet[0])
It looks like the object is just a reference which cannot be handled by Jackson. Is there any way we can convert
the result to POJO so that it can be serialized?
Thanks,
Steve