Xây dựng Webservice đơn giản

Một phần của tài liệu Xây dựng ứng dụng tổng hợp tin tức từ các trang tin và chương trình đọc tin trên thiết bị di động Android (Trang 37)

4.4.1. Yêu cầu ban đầu

Trước khi tiến hành xây dựng một RESTful Web Service đơn giản, máy tính cần được chuẩn bị sẵn một số thành phần sau:

 JDK hoặc JRE 7. Tải về và cài đặt JDK hoặc JRE tại địa chỉ sau: http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-

1880261.html

 Một server Java như Jboss, Apache Tomcat,… Tải về và cài đặt server Apache Tomcat 7 tại địa chỉ sau: http://tomcat.apache.org/download-70.cgi

 Thư viện JAX-RS Jersey. Tải về thư viện Jersey tại địa chỉ sau: https://jersey.java.net/download.html

4.4.2. Xây dựng Web service đơn giản

28

Hình 4.1. Tạo một Dynamic Web Project

Copy tất cả các tập tin trong thư viện Jersey vào trong thư mục WEB-INF/lib. Tạo một lớp tài nguyên như sau.

package com.example; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello")

public class Hello {

// Phương thức được gọi nếu yêu cầu kiểu TEXT

@GET

29 public String sayPlainTextHello() { return "Hello Jersey";

}

// Phương thức được gọi nếu yêu cầu XML

@GET

@Produces(MediaType.TEXT_XML)

public String sayXMLHello() {

return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" +

"</hello>"; }

// Phương thức được gọi nếu yêu cầu HTML

@GET

@Produces(MediaType.TEXT_HTML)

public String sayHtmlHello() {

return "<html> " + "<title>" + "Hello Jersey" + "</title>"

+ "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> "; }

}

Lớp này đăng ký chính nó như là một nguồn tài nguyên thông qua annotation

@GET. Thông qua annotation @Produces nó xác định kiểu MIME lần lượt là TEXT, XML và HTML. Annotation @Path xác định tài nguyên được gọi trên URL (adsbygoogle = window.adsbygoogle || []).push({});

thông qua đường dẫn /hello. Nếu yêu cầu được gửi từ trình duyệt web thì kết quả trả về là HTML.

Cần phải đăng ký Jersey là điều phối servlet cho các yêu cầu REST. Mở tập tin web.xml và chỉnh sửa như sau:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"

version="2.5">

30 <servlet>

<servlet-name>Jersey REST Service</servlet-name> <servlet- class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet- class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.example</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>

<servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern>

</servlet-mapping> </web-app>

Tham số "com.sun.jersey.config.property.packages" định nghĩa packet nào Jersey sẽ tìm kiếm các lớp web service. Thuộc tính này phải trỏ đến các lớp tài nguyên của bạn. Mẫu URL xác định một phần của URL cơ sở ứng dụng của bạn.

Một phần của tài liệu Xây dựng ứng dụng tổng hợp tin tức từ các trang tin và chương trình đọc tin trên thiết bị di động Android (Trang 37)