Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 如何在springMVC(RESTfulWebService)中格式化xml而不是原始格式_Java_Xml_Web Services_Spring Mvc - Fatal编程技术网

Java 如何在springMVC(RESTfulWebService)中格式化xml而不是原始格式

Java 如何在springMVC(RESTfulWebService)中格式化xml而不是原始格式,java,xml,web-services,spring-mvc,Java,Xml,Web Services,Spring Mvc,目前,我想返回返回xml结果,返回的xml格式如下: 我试着用这样的东西 @XmlRootElement(name = "item") public class Book implements Serializable { @XmlAttribute public int getBookId() { return bookId; } 。。。。 及 @XmlRootElement(name=“OneBoxResults”) 公共类JavaClazz{ 私有列

目前,我想返回返回xml结果,返回的xml格式如下:

我试着用这样的东西

       @XmlRootElement(name = "item")

public class Book implements Serializable {

 @XmlAttribute


public int getBookId() {


return bookId;
    }

。。。。 及

@XmlRootElement(name=“OneBoxResults”)
公共类JavaClazz{
私有列表OneBoxResults;
公共列表getOneBoxResults(){
返回OneBoxResults;
}
@xmlements(@xmlement(name=“book”,type=book.class))
public void setOneBoxResults(列出oneBoxResults){
OneBoxResults=OneBoxResults;
}
...
但是,我收到的返回结果只是Json格式,如下所示:

    @RequestMapping(value = "/rest.oneboxSample",produces = MediaType.APPLICATION_XML_VALUE, method = RequestMethod.GET)
public @ResponseBody String oneboxSample(){
    String tmpOpenField = "<Field name=\"";
    String tmpCloseField = "</Field>";
    StringBuilder builder = new StringBuilder();
    builder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
    builder.append("<OneBoxResults>").append("<resultCode>");
    builder.append("Listbook").append("<resultCode>");
    for(int i = 0; i < bookDao.getBooks().size(); i++){
        Book tmpBook = bookDao.getBooks().get(i);
        builder.append("<MODULE_RESULT>");
        builder.append(tmpOpenField).append("bookId\">").append(tmpBook.getBookId()).append(tmpCloseField);
        builder.append(tmpOpenField).append("bookName\">").append(tmpBook.getBookName()).append(tmpCloseField);
        builder.append(tmpOpenField).append("update\">").append(tmpBook.getUpdate()).append(tmpCloseField);
        builder.append(tmpOpenField).append("description\">").append(tmpBook.getDescription()).append(tmpCloseField);
        builder.append(tmpOpenField).append("path\">").append(tmpBook.getPath()).append(tmpCloseField);
        builder.append("</MODULE_RESULT>");
    }
    builder.append("</OneBoxResults>");
    return builder.toString();
}
{“oneBoxResults”:[{“bookId”:1,“bookName”:“搜索” 部署“,”更新“:”2014-01-07“,”说明“:”成功部署 通常包括以下内容 元素:,“路径”:null},{“bookId”:2,“bookName”:“GSA” 信息“,”更新“:”2015-01-07“,”说明“:”配置OneBox 模块,以便将搜索查询发送给提供商(自定义 应用程序“,”路径“:null}]}

我还尝试在控制器中创建新格式,如下所示:

    @RequestMapping(value = "/rest.oneboxSample",produces = MediaType.APPLICATION_XML_VALUE, method = RequestMethod.GET)
public @ResponseBody String oneboxSample(){
    String tmpOpenField = "<Field name=\"";
    String tmpCloseField = "</Field>";
    StringBuilder builder = new StringBuilder();
    builder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
    builder.append("<OneBoxResults>").append("<resultCode>");
    builder.append("Listbook").append("<resultCode>");
    for(int i = 0; i < bookDao.getBooks().size(); i++){
        Book tmpBook = bookDao.getBooks().get(i);
        builder.append("<MODULE_RESULT>");
        builder.append(tmpOpenField).append("bookId\">").append(tmpBook.getBookId()).append(tmpCloseField);
        builder.append(tmpOpenField).append("bookName\">").append(tmpBook.getBookName()).append(tmpCloseField);
        builder.append(tmpOpenField).append("update\">").append(tmpBook.getUpdate()).append(tmpCloseField);
        builder.append(tmpOpenField).append("description\">").append(tmpBook.getDescription()).append(tmpCloseField);
        builder.append(tmpOpenField).append("path\">").append(tmpBook.getPath()).append(tmpCloseField);
        builder.append("</MODULE_RESULT>");
    }
    builder.append("</OneBoxResults>");
    return builder.toString();
}
@RequestMapping(value=“/rest.oneboxSample”,products=MediaType.APPLICATION\u XML\u value,method=RequestMethod.GET)
public@ResponseBody字符串oneboxSample(){
字符串tmpOpenField=“”).append(tmpBook.getBookId()).append(tmpCloseField);
append(tmpOpenField).append(“bookName\”>).append(tmpBook.getBookName()).append(tmpCloseField);
append(tmpOpenField).append(“更新\“>”).append(tmpBook.getUpdate()).append(tmpCloseField);
append(tmpOpenField).append(“description\”>).append(tmpBook.getDescription()).append(tmpCloseField);
append(tmpOpenField).append(“path\”>).append(tmpBook.getPath()).append(tmpCloseField);
生成器。追加(“”);
}
生成器。追加(“”);
返回builder.toString();
}
但结果并不好。它返回一个字符串,而不是我们需要的xml格式

现在,我们的系统需要接收xml格式,而不是原始的xml格式。 请告诉我怎么做

下面是我写的源代码


谢谢,

我们需要了解您的Spring配置。特别是,如果您没有使用SpringBoot,您可能忘记注册XML消息转换器。我感谢你在这件事上的帮助。谢谢