@GET @Path("/get") @Produces(MediaType.APPLICATION_XML) public ArrayList addObjects() { Book book = new Book(); book.setName("The Book"); book.setAuthor("Author"); BookStore bookstore = new BookStore(); bookstore.setName("The Bookstore"); bookstore.setLocation("UK"); ArrayList list = new ArrayList(); list.add(book); list.add(bookstore); return list; }
这是我得到的错误:
11 Jul, 2013 3:36:52 PM com.sun.jersey.spi.container.ContainerResponse write SEVERE: A message body writer for Java class java.util.ArrayList, and Java type java.util.ArrayList, and MIME media type application/xml was not found 11 Jul, 2013 3:36:52 PM com.sun.jersey.spi.container. ContainerResponse write SEVERE: The registered message body writers compatible with the MIME media type are:application/xml -> com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App com.sun.jersey.core.impl.provider.entity.DocumentProvider com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App
任何人都可以为我提供解决方案吗?
引入如下的新课程
@XmlRootElement(name = "responseList") public class ResposeList { private List
并将列表设置如下
@GET @Path("/get") @Produces(MediaType.APPLICATION_XML) public ResposeList addObjects() { Book book = new Book(); book.setName("Here is the Game"); book.setAuthor("HHH"); BookStore bookstore = new BookStore(); bookstore.setName("Prateek Bookstore"); bookstore.setLocation("Vasanth Nagar"); ArrayList list = new ArrayList(); list.add(book); list.add(bookstore); ResposeList books=new ResposeList(); books.setList(list); return books; }
@GET @Path("/get") @Produces(MediaType.APPLICATION_XML) public Response addObjects() { Book book = new Book(); book.setName("Here is the Game"); book.setAuthor("HHH"); BookStore bookstore = new BookStore(); bookstore.setName("Prateek Bookstore"); bookstore.setLocation("Vasanth Nagar"); ArrayList list = new ArrayList(); list.add(book); list.add(bookstore); return Response.status(200).entity(list).build(); }
还要在ResponseList bean中的getter之上添加@XmlElemen t
@XmlRootElement public class ResponseList { private ArrayList list; @XMLElement("booksList") public ArrayList getList() { return list; } public void setList(ArrayList list) { this.list = list; } }