【发布时间】:2019-03-26 09:50:48
【问题描述】:
我有一个带有 PostMapping 的休息应用程序:
public List<Job> jobs = new ArrayList<Job>()
@PostMapping
public JobList handleXMLPostRequest (@Valid @RequestBody JobList newJobs)
{
for(Job joba : newJobs.getJobList())
jobs.add(joba);
for (Job joba : jobs)
System.out.println(joba.toString());
System.out.println("\n");
return newJobs;
}
对象作业:
@XmlRootElement(name = "job")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Job {
private int id;
private String type;
private String user;
private String device;
private int amount;
//getters and setters }
对象作业列表:
@XmlRootElement(name = "jobs")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class JobList {
public ArrayList<Job> jobList = new ArrayList<>();
//getter setter
}
尝试发布下一个 XML:
<jobs>
<job>
<id>10</id>
<type>print</type>
<user>user1</user>
<device>device1</device>
<amount>10</amount>
</job>
<job>
<id>11</id>
<type>scan</type>
<user>user1</user>
<device>device1</device>
<amount>10</amount>
</job>
</jobs>
我需要将
当我运行我的示例并将此 xml 列表传递给它时,它返回空列表。 如何正确设置这个 JobList?
【问题讨论】:
-
添加@PostMapping(consumes = {MediaType.APPLICATION_XML_VALUE})
-
仍然返回空列表。此外,当我尝试只传递一个
结构并且在参数中是 Job 作业而不是 JobList newJobs 时,它被很好地序列化为 Job 对象
标签: java xml spring spring-boot jaxb