我正在尝试遵循以下教程: http: //pfelitti87.blogspot.be/2012/07/rest-services-with-spring-3-xml-json.html
这基本上是一个关于如何自动将你的 spring 控制器响应转换为 JSON\XML 的教程。后者使用 xstream。
而且我的配置和他的一模一样(除了要扫描的包明显)。
我的 JSON url 看起来像我期望的那样,但是 .xml url 没有返回我期望的结果。它开始于:
<?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
编辑2:控制器:
@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 配置。