У меня есть простой веб-сервис Restful, использующий Spring Boot 2.1, Java 8, работающий на Eclipse Neon. Я отправляю следующий запрос:
<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>
то есть в ответе есть 2 элемента патентных списка, а не внутренний патентный элемент, и я не знаю почему. Мои 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 ARC Advanced Rest Client:
Отдых клиента с Content-type = application / xml
Я установил, что оба названия элементов патентList отображаются для получения PatentList () в PatentListWrapper. Как получить конверт ответа, соответствующий конверту запроса? Любая помощь приветствуется.