Thursday, November 5, 2015

jax-rs (sử dụng jersey) (P1)

jax-rs (sử dụng jersey) (P1)

  1. Tạo Rest service trên java sử dụng gói jersey

  2. Gọi Rest service từ trang html với java script


Trong bài này chúng ta sẽ tìm hiểu các tạo dich vụ vụ web theo kiến trúc Rest. Bài này chúng ta sẽ cài đặt cách giao tiếp qua phương thức GET.
B1: Tạo java web project
B2: Tạo rest service
rest1
rest2
rest3
Sau khi xong, mở file web.xml chúng ta sẽ thấy xuất hiện thêm đoạn xml sau:
[sourcecode language="xml"]
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
[/sourcecode]

Hiệu chỉnh lại nội dung của lớp Student như sau:
[sourcecode language="java"]
package codes;
import javax.ws.rs.PathParam;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

@Path("student")
public class Student {
public Student() {
}
/**
* Phuong thuc se duoc kich hoat khi nhan duoc
* yeu cau tu phia client theo phuong phap get
* Ket qua tra ve chuyen thanh chuoi
*/
@GET
@Produces("text/plain")
public String getText() {
return "hello moto";
}

/**
* Phuong thuc se duoc kich hoat khi nhan duoc
* yeu cau tu phia client theo phuong phap get
* Ket qua tra ve chuyen thanh chuoi XML
*/
@Path("/xml")
@GET
@Produces("text/xml")
public String getXML(@QueryParam("id") int id) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Customer customer = new Customer(id, "Nguyen Van Mit", "Can Tho");
StringWriter sw = new StringWriter();
jaxbMarshaller.marshal(customer, sw);
String xmlString = sw.toString();
return xmlString;
} catch (JAXBException ex) {
return ex.toString();
}
}

/**
* Phuong thuc se duoc kich hoat khi nhan duoc
* yeu cau tu phia client theo phuong phap get
* nhan tham so id theo cach gan them vao URL
* Ket qua tra ve chuyen thanh chuoi xml
*/
@Path("/xml/{id}")
@GET
@Produces("text/xml")
// @PathParam("id") tim phan id tren URL
public String getXMLID(@PathParam("id") int id) {
return "<rs><id>"+id+"</id>"
+ "<name>hello moto</name>"
+ "</rs>";
}

/**
* Phuong thuc se duoc kich hoat khi nhan duoc
* yeu cau tu phia client theo phuong phap get
* Ket qua tra ve chuyen thanh chuoi JSON
*/
@Path("/json")
@GET
@Produces("text/json")
public String getJSON() {
return "{'id':1, "
+ "'name':'Nguyen Van Mit'}";
}
}
[/sourcecode]

Biên dịch và deploy website.
Mở trình duyệt và gõ địa chỉ như sau để test:
rest4

rest5

Như vậy là chúng ta đã có được dịch vụ web theo kiến trúc Rest
Các bước thực hiện chi tiết và tạo client để gọi dịch vụ với ajax tham khảo video này:

[embed]https://youtu.be/BOhU3gKGpKo[/embed]

Thử xem sao !

No comments:

Post a Comment

Translate