REST服务,可以同时使用XML和JSON。 JSON输入正常工作的地方。 XML请求返回错误请求错误。接受XML请求可以做些什么。
这是一个使用 spring 3& jdk 6
@RequestMapping(value = URIConstants.EST, method = RequestMethod.POST , consumes={"application/json", "application/xml"}, produces={"application/xml","application/json"})
public @ResponseBody ResponseEntity<?> getMasEstablishments(@RequestBody EstDto msaEstRequestDto) throws MasterException {
}
这是用于映射输入的dto // EstDto
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class EstDto implements Serializable {
private long regionCode;
private String medicalReportYN;
}
这些是与映射相关的pom.xml中的少数条目
Pom.xml
-----------
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.1</version>
</dependency>
在将输入作为json传递时,服务按预期返回结果
关于XML请求
<?xml version="1.0" encoding="UTF-8"?>
<root>
<medicalReportYN>N</medicalReportYN>
<regionCode>50001</regionCode>
</root>
XML响应错误
<HTML>
<HEAD>
<TITLE>Error 400--Bad Request</TITLE>
</HEAD>
---------------------------
<P>
<FONT FACE="Courier New">The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.</FONT>
</P>
</FONT>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
如果您需要更多详细信息,请与我们联系。 它适用于JSON数据的现有配置。为了使其适用于XML输入,需要添加哪些更改?
答案 0 :(得分:1)
我认为您需要使用XML来使用<estDto>
的根元素,而不是名为的元素,&#34; root&#34;。
(或者将注释更改为@XmlRootElement(name="root")
,但另一个命名更正常,更明确。)