Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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 restful中的返回类型xml或json_Java_Xml - Fatal编程技术网

Java restful中的返回类型xml或json

Java restful中的返回类型xml或json,java,xml,Java,Xml,下面我有一些代码,当我用postman测试它时。出现错误“500”。我不理解“@products(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.co

下面我有一些代码,当我用postman测试它时。出现错误“500”。我不理解“@products(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();
    }

}
import java.sql.SQLException;
导入java.util.List;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.products;
导入javax.ws.rs.core.MediaType;
@路径(“/UserService”)
公共类用户服务{
UserDAO UserDAO=newuserdao();
@得到
@路径(“/users”)
@生成(MediaType.APPLICATION\u XML)
public List getUsers()抛出ClassNotFoundException、SQLException{
返回userDAO.getAllUsers();
}
}

作为您的方法,结果以xml格式返回。

是,
@product
定义生成的格式。因此,您的用户列表将采用XML格式。 不要忘记参数化Postman头以接受XML

//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
我希望您已经准备好了用户类——包含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;
    }  
}

它指定此方法产生的内容类型(是复数!)(因此得名)。这是用来

  • 选择要为传入请求执行的正确方法
  • 确定作为响应生成的内容 在您的情况下,当传入请求需要JSON时,您将获得HTTP 406,因为没有任何东西可以处理此方法


    现在,如果该方法已经用
    @products({MediaType.APPLICATION\uxml,MediaType.APPLICATION\ujson})注释了
    ,那么它将被提供服务并生成JSON。现在您有了一个同时服务JSON和XML的方法。服务内容根据传入请求的
    Accept头决定

    是,这表示XML返回的类型。注意:在邮递员处使用XMLAccept头。