java - 在 restful 中返回类型 xml 或 json
问题描述
我在下面有一些代码,当我用邮递员测试它时。它发生错误“500”。我不明白“@Produces(MediaType.APPLICATION_XML)”的优势。它是否将返回类型自动定义为 XML,或者没有。
import java.sql.SQLException;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/UserService")
public class UserService {
UserDAO userDAO = new UserDAO();
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
public List<User> getUsers() throws ClassNotFoundException, SQLException {
return userDAO.getAllUsers();
}
}
解决方案
//To process HTTP GET requests.
@GET
//@Path Identifies the URI path that a resource class will serve requests for.
@Path("/abcd")
//@Produces defines the media type(s) that the methods of a resource class can produce.
@Produces(MediaType.APPLICATION_XML
我希望你已经准备好了 User 类——带有 XmlRootElement 和 XML 元素
举个例子——
@XmlRootElement(name="User")
public class User{
private int id;
private String name;
public User() {
}
@XmlElement
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}