欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

cxf使用json傳

錢諍諍1年前8瀏覽0評論

CXF是一個開源框架,在Java應用程序中實現(xiàn)Web服務和RESTful服務。CXF允許我們使用各種協(xié)議傳輸數(shù)據(jù),其中包括JSON。

下面是如何使用CXF以JSON格式傳輸數(shù)據(jù)的實例:

@POST
@Path("/create")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createStudent(Student student){
// some code to create a new student record
return Response.status(Status.CREATED).entity(student).build();
}

在這個例子中,我們使用@Consumes注解來標注該方法所期望的輸入流媒體類型,而使用@Produces注解來標注輸出流媒體類型。在這個例子中,input和output流媒體類型都是JSON。

我們可以使用javax.ws.rs.core.MediaType類來定義輸入和輸出流媒體類型。例如,MediaType.APPLICATION_JSON 等價于 "application/json"。

我們的Student類需要實現(xiàn)Java Bean標準。它必須有一個默認構造函數(shù),以及與所有屬性相對應的setter和getter方法:

public class Student {
private String name;
private String dept;
private int age;
public Student(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

現(xiàn)在我們可以從客戶端向服務端發(fā)送一個JSON請求:

Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8080/student/create");
Student student = new Student();
student.setName("John");
student.setDept("Computer Science");
student.setAge(21);
Response response = target.request().post(Entity.entity(student, MediaType.APPLICATION_JSON));
System.out.println(response.getStatus());
client.close();

在這個例子中,我們首先創(chuàng)建了一個CXF客戶端實例,并設置了目標地址和Web服務請求路徑。接著,我們創(chuàng)建了一個Student對象并將其傳遞給服務端。我們使用javax.ws.rs.client.Entity.Entity()方法將這個對象放入請求內容中,并使用post()方法發(fā)送請求。最后,我們查看服務端響應的狀態(tài)碼。

這就是使用CXF和JSON格式傳輸數(shù)據(jù)的簡單例子。注意,我們在服務端的createStudent()方法中的Student參數(shù)前必須添加@consumes注解,否則CXF會將請求體中的JSON數(shù)據(jù)視為純文本。