Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何强制弹簧';s@ResponseBody使用xmlConvertor_Java_Spring_Http_Spring Mvc_Jaxb - Fatal编程技术网

Java 如何强制弹簧';s@ResponseBody使用xmlConvertor

Java 如何强制弹簧';s@ResponseBody使用xmlConvertor,java,spring,http,spring-mvc,jaxb,Java,Spring,Http,Spring Mvc,Jaxb,当我从这样的控制器返回单个对象时 @ResponseBody public MyClass module(...) { ... } @ResponseBody public List<MyClass> module(...) { ... } 我在客户端上得到xml输出,日志显示如下 @ResponseBody public MyClass module(...) { ... } @ResponseBody public List<MyClass> modul

当我从这样的控制器返回单个对象时

@ResponseBody 
public MyClass module(...) {
...
}
@ResponseBody 
public List<MyClass> module(...) {
...
}
我在客户端上得到xml输出,日志显示如下

@ResponseBody 
public MyClass module(...) {
...
}
@ResponseBody 
public List<MyClass> module(...) {
...
}
2011-09-07 18:22:06963[qtp1409490836-27]调试 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter -书面[com.domain]。MyClass@4374820d]作为“应用程序/xhtml+xml” 使用 [org.springframework.http.converter.xml。Jaxb2RootElementHttpMessageConverter@b4e1f3]

但是如果我使用这样的列表

@ResponseBody 
public MyClass module(...) {
...
}
@ResponseBody 
public List<MyClass> module(...) {
...
}

如何强制spring始终使用xmlconverter?

如果spring找不到JSON转换,则无法发送JSON。尝试从类路径中删除jackson.jar,所有请求都应通过XStream默认为XML。

存在一些错误,这意味着您无法在列表中返回类。您需要创建一个新类来保存对象列表,并将其返回到@ResponseBody中。大概是这样的:

@RequestMapping(value = Constants.URL, method = RequestMethod.GET)
public @ResponseBody ListHolder getFoos(HttpServletResponse response) {
    response.setContentType("application/xml");         
    List<Foo> foos = getFoos(); 
    ListHolder listHolder = new ListHolder();
    listHolder.setFoos(foos);
    return listHolder;
}
@RequestMapping(value=Constants.URL,method=RequestMethod.GET)
public@ResponseBody列表持有者getFoos(HttpServletResponse){
setContentType(“应用程序/xml”);
List foos=getFoos();
ListHolder ListHolder=新的ListHolder();
列表持有者。setFoos(foos);
返回列表持有人;
}

用@XmlRootElement注释ListHolder类,如果您有jaxb jar或Java 6,那么它应该可以工作。

您为
Accept
头设置了什么?我无法删除任何依赖项jar。是的!这就是我最后所做的。但是这件球衣很漂亮。如果返回一个列表,它将创建一个额外的标记来包装所有的标记。