Spring:返回xml for rest call response不按预期方式

时间:2013-03-12 11:11:16

标签: spring rest xstream

我正在尝试按照以下教程: http://pfelitti87.blogspot.be/2012/07/rest-services-with-spring-3-xml-json.html

这基本上是关于如何自动将Spring控制器响应转换为JSON \ XML的教程。后者使用xstream。

我的配置与他的配置完全相同(除了显然要扫描的软件包)。

我的JSON网址看起来像我期望的那样,但.xml网址并没有返回我期望的内容。 它始于:

    <?xml version="1.0"?>
    <org.springframework.validation.BeanPropertyBindingResult><nestedPath/>
    <nestedPathStack serialization="custom"><unserializable-parents/><vector>
<default><capacityIncrement>0</capacityIncrement><elementCount>0</elementCount>
<elementData><null/><null/><null/><null/><null/><null/><null/><null/><null/><null/></elementData></default></vector></nestedPathStack><objectName>coursesTakenForDealer</objectName>-<messageCodesResolver class="org.springframework.validation.DefaultMessageCodesResolver"><prefix/><formatter class="org.springframework.validation.DefaultMessageCodesResolver$Format">PREFIX_ERROR_CODE</formatter></messageCodesResolver>

并且只包含实际返回的对象。

此外,它似乎忽略了@XmlAttribute@XmlElement注释。

我的Person类上有一个名为@XmlAttribute的名称实例变量,但它被转换为:

<person>
    <name>Jack</name>
</person>

任何关于如何解决这个问题的建议都会非常感激。(/或许使用jaxb)将会非常感激。

编辑: 根据要求,我的部分输出(它不完全适合这里)。它使用:http://localhost:8080/restTestApp/interestingPeople.xml

调用

EDIT2: 控制器:

@Controller
public class InterestingPeopleController {


    @RequestMapping(value="interestingPeople", method = GET)
    public InterestingPeople getCoursesTakenByDealers() {   
        InterestingPeople interestingPeople;
        //some logic (service calls etc) to fill it in
        return interestingPeople;
    }
}

编辑3: 我能够通过添加:

来解决这个问题
<property name="supportedClasses">
    <list>                             
        <value>com.jackdans.model.InterestingPeople</value>
    </list>
</property>

到我的XStreamMarshaller bean配置。

0 个答案:

没有答案