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:

<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>

Hiệu chỉnh lại nội dung của lớp Student như sau:

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'}";
    }
}

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:

Thử xem sao !

Advertisements

Phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s