我有一个终点
@GetMapping()
public Page<String> list(String search, Pageable pageable)
api响应看起来像
json prettyprint-override">{
"content": [
"a00000",
"b11111"
],
"first": true,
"last": true,
"totalPages": 1,
"totalElements": 2,
"numberOfElements": 2,
"size": 2000,
"number": 0,
"pageable": {
"sort": {
"unsorted": true,
"sorted": false
},
"offset": 0,
"pageSize": 2000,
"pageNumber": 0,
"unpaged": false,
"paged": true
}
}
我正在尝试使用SpringV2在另一个微服务中使用该endpoint。5.0 via
override fun getNamesById(id: String): List<String> {
val uri = URIBuilder("$baseUrl/api/names")
.setParameter("search", "id==$id")
.build()
try {
val response = restTemplate.exchange(
uri,
HttpMethod.GET,
null),
typeReference<RestResponsePage<String>>()
)
return response.body!!.content
} catch (ex: HttpServerErrorException) {
throw handleServerError(ex)
}
}
inline fun <reified T> typeReference() = object : ParameterizedTypeReference<T>() {}
resresponsepage
的实现遵循这篇文章来处理分页响应。
@JsonIgnoreProperties(ignoreUnknown = true)
public class RestResponsePage<T> extends PageImpl<T> {
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
public RestResponsePage(@JsonProperty("content") List<T> content,
@JsonProperty("number") int number,
@JsonProperty("size") int size,
@JsonProperty("totalElements") Long totalElements) {
super(content, PageRequest.of(number, size), totalElements);
}
public RestResponsePage(List<T> content, Pageable pageable, long total) {
super(content, pageable, total);
}
public RestResponsePage(List<T> content) {
super(content);
}
public RestResponsePage() {
super(new ArrayList<>());
}
}
然而,当运行我的应用程序时,我得到了这个错误
java.lang.TypeNotPresentException: Type com.test.RestResponsePage not present
...
at com.test.anotherService$getNamesById$$inlined$typeReference$1.<init>(anotherService.kt:75)
at com.test.anotherService$getNamesById(anotherService.kt:77)
如何正确使用此终结点?
将Java类转换为静态编程语言类。
一切正常,但我不能使用RestTemplate getForEntity方法使用我的endpoint: 我应该提供什么类来成功反序列化我的实体页面?
在服务器端,我正在使用一个HTTP API,它以页面形式返回结果。如中所示,响应包含x个结果,如果有超过0的结果,我可以再次调用它以获得下一个x个结果。x可以任意选择直到API的最大页面大小。 现在,我想要在WebSocket上高效地流式传输全套结果,而不会使它不堪重负(施加背压)。最初,我构建了整个resultset,然后从中创建了一个源代码: 这样可以工作,WebSocket客户机以其最大速度
问题内容: 我正在使用spring数据(mongoDb),并且有我的存储库: 然后我有一个控制器: 一切正常,但是我无法使用RestTemplate getForEntity方法消耗端点: 我应该提供什么课程来成功反序列化实体页面? 问题答案: new TypeReference >() {} 该语句的问题在于,Jackson无法实例化抽象类型。您应该为Jackson提供有关如何实例化具体类型的信
我找了很多,但没有找到任何解决办法。我试图通过android使用客户端将带有base64编码的图像的json对象发布到web服务。 http.springframework.http.converter.httpMessageNotWritableException:无法编写JSON:JsonObject(通过引用链:com.google.gson.JsonObject[“AsbigDecimal
我不熟悉Spring RestTemplate。 但是对于这个项目,我必须使用Spring RestTemplate发送一个POST调用来使用rest API。
下面是响应(域模型)的Java类。我已经将排序数据建模为这个类中的一个字段,这可能是错误的,应该有一种方法将它在一个可分页对象中传递给超类。 这是自定义的反序列化程序,归入https://blog.thecookinkitchen.com/how-to-consump-page-respons-from-a-service-in-spring-boot-97293c18ba 下面是一个JUnit测