当json请求有效时,XMl Request返回错误的请求响应

时间:2018-05-29 07:25:41

标签: spring spring-mvc spring-3

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输入,需要添加哪些更改?

1 个答案:

答案 0 :(得分:1)

我认为您需要使用XML来使用<estDto>的根元素,而不是名为的元素,&#34; root&#34;。

(或者将注释更改为@XmlRootElement(name="root"),但另一个命名更正常,更明确。)