【发布时间】:2018-05-21 11:19:10
【问题描述】:
所以我公开了一个Rest API,其中请求有效负载将位于application/xml。
样本负载:
<NAMES>
<NAME ID="P2" DESCRIPTION="Johnson & Johnsons" />
</NAMES>
代码:
@PostMapping(value = "/UpdateSomeThings", consumes = { MediaType.APPLICATION_XML })
public ResponseEntity<SomeResponseModel> UpdateSomeThings(
@PathVariable("mId") String mId, @Valid @RequestBody SomeMapModel reqBody) {
.
.
.
.
return new ResponseEntity<>(response, HttpStatus.OK);
}
模型类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "NAMES")
@Data
public class SomeMapModel {
@XmlElement(name = "NAME")
private ChildModel[] chld;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "NAME")
@Data
public class ChildModel {
@XmlAttribute(name = "ID")
private String id;
@XmlAttribute(name = "DESCRIPTION")
private String desc;
}
我收到以下错误:
“状态”:400,“错误”:“错误请求”,“异常”: "org.springframework.http.converter.HttpMessageNotReadableException", "message": "无法解组到 [SomeMapModel]null;嵌套异常是 javax.xml.bind.UnmarshalException\n - 带有链接异常:\n[org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 41;实体名称必须紧跟实体引用中的“&”。]"
为什么java不能解析带有'&'的XML字段?如何实时处理?
【问题讨论】:
标签: java xml spring-boot jaxb