Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring Boot中使用RestClient反序列化Rest API页面_Java_Spring Boot_Rest - Fatal编程技术网

Java 在Spring Boot中使用RestClient反序列化Rest API页面

Java 在Spring Boot中使用RestClient反序列化Rest API页面,java,spring-boot,rest,Java,Spring Boot,Rest,我们使用的RESTAPI将返回页面中的结果。以下是一个例子: 事件Bean类: @Getter @Setter @ToString @NoArgsConstructor @AllArgsConstructor @JsonIgnoreProperties public class Event implements Serializable { /** * */ private static final long serialVersionUID = -761

我们使用的RESTAPI将返回页面中的结果。以下是一个例子:

事件Bean类:

@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties
public class Event implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -7613296461448310227L;

    private String name;
    private String id;
    private String type;
    
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties
public class EventList {

    @JsonProperty("events")
    private List<Event> events = null;
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties
public class EventResponse {

    @JsonProperty("_embedded")
    private EventList responseList = null;
}
事件列表Bean类:

@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties
public class Event implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -7613296461448310227L;

    private String name;
    private String id;
    private String type;
    
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties
public class EventList {

    @JsonProperty("events")
    private List<Event> events = null;
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties
public class EventResponse {

    @JsonProperty("_embedded")
    private EventList responseList = null;
}
使用RestTemplate调用Rest API的逻辑:

ParameterizedTypeReference<RestResponsePage<Event>> responseType = new ParameterizedTypeReference<RestResponsePage<Event>>() {
            };

            ResponseEntity<RestResponsePage<Event>> response = this.restTlsTemplate
                    .exchange(this.url, HttpMethod.GET, entity, responseType);

            RestResponsePage<Event> eventsResources = response.getBody();

            Collection<Event> eventsCollection = eventsResources.getContent();
            
ParameteredTypeReference responseType=新的ParameteredTypeReference(){
};
ResponseEntity response=this.restTlsTemplate
.exchange(this.url、HttpMethod.GET、entity、responseType);
RestResponsePage eventsResources=response.getBody();
Collection Events Collection=eventsResources.getContent();
RestResponsePage类别:

@JsonIgnoreProperties(ignoreUnknown = true)
public class RestResponsePage<T> extends PageImpl<T> {
    /**
     * 
     */
    private static final long serialVersionUID = -5317908588846766606L;

    @JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
    public RestResponsePage(@JsonProperty("content") List<T> content,
                            @JsonProperty("number") int number,
                            @JsonProperty("size") int size,
                            @JsonProperty("totalElements") Long totalElements,
                            @JsonProperty("pageable") JsonNode pageable,
                            @JsonProperty("last") boolean last,
                            @JsonProperty("totalPages") int totalPages,
                            @JsonProperty("sort") JsonNode sort,
                            @JsonProperty("first") boolean first,
                            @JsonProperty("numberOfElements") int numberOfElements) {

        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<>());
    }
}
@JsonIgnoreProperties(ignoreUnknown=true)
公共类ResponsePage扩展了PageImpl{
/**
* 
*/
私有静态最终长serialVersionUID=-5317908588846766606L;
@JsonCreator(mode=JsonCreator.mode.PROPERTIES)
公共ResponsePage(@JsonProperty(“内容”)列表内容,
@JsonProperty(“数字”)整数,
@JsonProperty(“大小”)int size,
@JsonProperty(“totalElements”)长totalElements,
@JsonProperty(“可分页”)JsonNode可分页,
@JsonProperty(“last”)布尔值last,
@JsonProperty(“totalPages”)int totalPages,
@JsonProperty(“排序”)JsonNode排序,
@JsonProperty(“第一”)布尔值优先,
@JsonProperty(“numberOfElements”)int numberOfElements){
super(内容、页面请求、数量、大小、元素总数);
}
公共ResponsePage(列表内容、可分页、长总计){
超级(内容、可分页、总计);
}
公共厕所响应区(列表内容){
超级(内容);
}
公共厕所响应区(){
super(新的ArrayList());
}
}
尝试上述操作时会引发异常:

Error=JSON转换问题:无法构造
…ResponsePage
的实例,问题:页面大小不能小于1!;嵌套异常为com.fasterxml.jackson.databind.exc.valueInstanceException:无法构造
…ResponsePage
的实例,问题:页面大小不能小于一!在[Source:(PushbackInputStream);行:81,列:1]| JSON转换问题:无法构造
…ResponsePage
的实例,问题:页面大小不能小于1!;嵌套异常为com.fasterxml.jackson.databind.exc.valueInstanceException:无法构造
…ResponsePage
的实例,问题:页面大小不能小于一!在[源:(PushbackInputStream);行:81,列:1]


我看到过一些类似于这个问题的帖子,但我也尝试过同样的方法,但效果并不理想。因此,任何人都可以在这方面帮助我,因为我没有得到这个问题,而且我是Rest客户端反序列化页面的新手。

重复此内容:@Krishna您能解决这个问题吗?就连我也遇到了这个问题。重复这个:@Krishna你能解决这个问题吗?就连我也有这个问题。