我有一个简单的Restful webService,使用SpringBoot2.1,Java8,运行在Eclipse上。我发送以下请求:
<patentListWrapper>
<patentList>
<patent>
<guid>bbb</guid>
</patent>
<patent>
<guid>ccc</guid>
</patent>
</patentList>
</patentListWrapper>我得到以下(不正确的)回应:
<patentListWrapper>
<patentList>
<patentList>
<guid>ddd</guid>
</patentList>
<patentList>
<guid>eee</guid>
</patentList>
</patentList>
</patentListWrapper>我在响应中有两个patentList元素,而不是内部的专利元素,我不知道为什么。映射请求的2个POJO类是:
public class PatentListWrapper {
private List<Patent> patents;
public List<Patent> getPatentList() {
return patents;
}
public void setPatentList(List<Patent> patents) {
this.patents = patents;
}
}以及:
public class Patent {
private String guid;
public String getGuid() {
return guid;
}
public void setGuid(String guid) {
this.guid = guid;
}
public Patent() {
super();
}
}我的REST控制器类是:
@RestController
public class PndController {
@Autowired
ReadFromDb db;
@RequestMapping(value = "/guidRequest/xmlList", method = RequestMethod.POST, produces = { "application/xml", "text/xml" }, consumes = MediaType.ALL_VALUE )
public PatentListWrapper guidSearchList(@RequestBody PatentListWrapper patentListWrapper) {
System.out.println("DS in guidSearchList()");
patentListWrapper = db.readGuidsFromDb(patentListWrapper); // Set the guid in the patents List in patentListWrapper
return patentListWrapper;
}
}和ReadFromDb类:
@Repository
public class ReadFromDb {
public PatentListWrapper readGuidsFromDb(PatentListWrapper patentListWrapper) {
List<Patent> patents= patentListWrapper.getPatentList();
for(Patent patent : patents) {
patent.setGuid("aaa");
}
patentListWrapper.setPatentList(patents);
return patentListWrapper;
}
}我正在使用windows高级Rest客户端发送我的Rest:内容类型=application/xml的Rest客户机
我已经建立了和 patentList元素名映射到PatentListWrapper中的patentList。如何获得响应信封以匹配请求信封?任何帮助都很感激。
发布于 2018-11-12 11:34:25
确实,只需创建具有相同变量名的getter setter方法,如下所示,而不是对getter setter方法使用不同的名称
private List<Patent> patents;
public List<Patent> getPatents() {
return patents;
}
public void setPatents(List<Patent> patents) {
this.patents = patents;
}或者使用GSON并使用@JsonProperty并定义所需的值名,如果您没有使用IDE生成getter和setter,最好使用lombok插件。
https://stackoverflow.com/questions/53261066
复制相似问题