Đề tài Web service trong Java

Mục lục:

 

Lời nói đầu 3

PHẦN A: JAVA WEB SERVICE 4

1. Tổng quan về Web Service 4

1.1. Khái niệm 4

1.2. Đặc điểm của web service 4

1.3. Ưu và nhược điểm của web service 4

1.3.1 Ưu điểm 4

1.3.2 Nhược điểm 5

2. Kiến trúc của web service 5

3. Các giao thức trong web service 6

3.1. XML 6

3.2. WSDL - Web Service Description Language 6

3.3. Universal Description, Discovery, and Integration (UDDI) 7

3.4. SOAP - Simple Object Access Protocol 8

4. Xây dựng một web service với các công nghệ của Java 9

4.1. Qui trình xây dựng một web service 9

4.2. Các thư viện dùng để tạo web service trong Java 9

4.2.1 JAX-WS 9

4.2.1.1 Các bước cơ bản để tự tay tạo một web service với JAX-WS 10

4.2.1.2 Các lưu ý khi cài đặt một cụ thể hóa của SEI 10

4.2.1.3 Ví dụ 11

4.2.2 Apache Axis 13

PHẦN B: TRIỂN KHAI ĐỒ ÁN TASK MANAGER 14

1. Lời nói đầu: 14

2. Project TaskManager 14

2.1. Giới thiệu 14

2.2. Yêu cầu chức năng 14

2.3. Cấu trúc chương trình 16

2.4. Chạy chương trình phía server 17

2.5. Chạy chương trình phía client 18

PHỤ LỤC: XÂY DỰNG VÀ TRIỂN KHAI MỘT WEB SERVICE TỪ CÁC CÔNG CỤ CÓ SẴN 20

1. Các công cụ cần thiết 20

2. Cài đặt và cấu hình các công cụ 20

3. Tạo một web service trong NetBeans IDE 32

4. Tạo một Web Service Client trong NetBeans 33

5. Cài đặt và chạy ứng dụng 34

Lời kết 36

Tài liệu tham khảo 37

 

 

doc37 trang | Chia sẻ: netpro | Lượt xem: 6475 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Web service trong Java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ủa web service, để từ đó có thể ứng dụng vào xây dựng một hệ thống có sử dụng web service. Do đây là lần đầu tiên nhóm tiếp cận và tìm hiểu về web service nên chắc chắn sẽ không tránh khỏi những sai sót. Vi vậy, rất mong nhận được những nhận xét và những ý kiến đóng góp của quý thầy cô và các bạn để chúng ta có thể cùng trao dồi và chia sẻ kiến thức, giúp ích được trong học tập và trong công việc. Tp. HCM Tháng 05/2009 Nhóm 23 – Khoa Công nghệ Phần mềm PHẦN A: JAVA WEB SERVICE Tổng quan về Web Service Khái niệm Nói một cách đơn giản, web service là một ứng dụng, một tiện ích mà các nhà phát triển muốn cung cấp rộng rãi cho nhiểu người, nhiều tổ chức có thể sử dụng. Tương tự như khi chúng ta xây dựng một trang web là để cả thế giới có thể vào xem. Web service là những ứng dụng chạy trên nền web, điều khác biệt so với các ứng dụng web bình thường khác là khách hàng hay client của các web service không chỉ là trình duyệt web (web browser) mà còn có thể là những ứng dụng chạy trên máy tính cá nhân (desktop) hay trên các thiết bị di động (mobile device). Đặc điểm của web service Theo đặc tả của W3C (World Wide Web Consortium), dịch vụ Web có khả năng tương tác với các hệ thống khác thông qua một giao diện chung được mô tả bằng XML. Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này. Một Dịch vụ Web có bao gồm có nhiều mô-đun và công bố lên mạng Internet. Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Java, Oracle Application server hay Microsoft.NET… Ưu và nhược điểm của web service Ưu điểm Dịch vụ Web cung cấp khả năng hoạt động rộng lớn và linh hoạt với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau. Nền tảng của web service là công nghệ XML. Hầu hết các hệ thống đều thể đọc và “hiểu” được tập tin XML. Thúc đẩy phát triển các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web và công bố rộng rãi trên mạng Internet. Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán. Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành dịch vụ, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác. Ở góc độ doanh nghiệp, web service là một công nghệ phục vụ rất tốt trong việc quảng bá dịch vụ của mình cho đa dạng khách hàng. Nhược điểm Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt cũng như gây khó khăn cho các nhà phát triển. An toàn và bảo mật thông tin là một vấn đề nan giải của web service. Có nhiều vấn đề về các tác vụ đòi hỏi transaction (ví dụ như chuyển tiền qua lại giữa các ngân hàng) chưa được giải quyết hoàn chỉnh. Tốc độ thực thi (performance) của web service phụ thuộc rất nhiều vào tốc độ đường truyền Internet và nhìn chung các web service thực thi chậm hơn các ứng dụng bình thường khác. Vấn đề Quality of Service (QoS) còn chưa được đảm bảo, nhất lả khi web service bị rơi vào tình trạng quá tải (peak load) và có thể gây những thiệt hại lớn cho phía máy khách. Kiến trúc của web service Kiến trúc của web service. Dịch vụ Web gồm có ba chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration). Hình 1 mô tả chồng giao thức của dịch vụ Web, trong đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web. Các thông điệp SOAP được gửi đi chính xác bởi giao thức HTTP và TCP/IP. Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính: Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP). Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST. Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch vụ Web cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Dịch vụ Web sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp. Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một dịch vụ Web cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp. Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này. Các giao thức trong web service XML Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp. XML là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch vụ Web. WSDL - Web Service Description Language WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin: Tên dịch vụ. Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ Web. Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của dịch vụ Web cộng với tên cho giao diện này). Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương thức kết nối) và phần thi hành mô tả thông tin truy xuất cơ sở dữ liệu (CSDL). Cả hai phần này sẽ được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi hành dịch vụ. Giao diện của một dịch vụ Web được miêu tả trong phần này đưa ra cách thức làm thế nào để giao tiếp qua dịch vụ Web. Tên, giao thức liên kết và định dạng thông điệp yêu cầu để tương tác với dịch vụ Web được đưa vào thư mục của WSDL. WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp dịch vụ Web qua Internet. Một client khi kết nối tới dịch vụ Web có thể đọc WSDL để xác định những chức năng sẵn có trên server. Sau đó, client có thể sử dụng SOAP để lấy ra chức năng chính xác có trong WSDL. Tập tin .wsdl do GoogleSearch cung cấp Universal Description, Discovery, and Integration (UDDI) Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web. Cấu trúc UDDI : Trang trắng – White pages: chứa thông tin liên hệ và các định dạng chính yếu của dịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những thông tin này cho phép các đối tượng khác xác định được dịch vụ. Trang vàng – Yellow pages: chứa thông tin mô tả dịch vụ Web theo những loại khác nhau. Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại với nó. Trang xanh – Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của dịch vụ Web. Loại dịch vụ – tModel:  chứa các thông tin về loại dịch vụ được sử dụng. Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử dụng giao thức này. Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của dịch vụ Web khác nhằm xác định xem dịch vụ nào sẽ cần đến nó. SOAP - Simple Object Access Protocol Chúng ta đã hiểu cơ bản dịch vụ Web như thế nào nhưng vẫn còn một vấn đề khá quan trọng. Đó là làm thế nào để truy xuất dịch vụ khi đã tìm thấy? Câu trả lời là các dịch vụ Web có thể truy xuất bằng một giao thức là Simple Object Access Protocol – SOAP. Nói cách khác chúng ta có thể truy xuất đến UDDI registry bằng các lệnh gọi hoàn toàn theo định dạng của SOAP. SOAP là một giao thức giao tiếp có cấu trúc như XML. Nó được xem là cấu trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ điều hành khác nhau. SOAP là giao thức thay đổi các thông điệp dựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP. Joe Một request sử dụng giao thức SOAP Hello, Joe. …Và response tương ứng của nó. Xây dựng một web service với các công nghệ của Java Qui trình xây dựng một web service Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cung cấp (sử dụng ngôn ngữ Java chẳng hạn). Tạo WSDL cho dịch vụ Xây dựng SOAP server Đăng ký WSDL với UDDI registry để cho phép các client có thể tìm thấy và truy xuất. Client nhận file WSDL và từ đó xây dựng SOAP client để có thể kết nối với SOAP server. Xây dựng ứng dụng phía client (chẳng hạn sử dụng Java) và sau đó gọi thực hiện dịch vụ thông qua việc kết nối tới SOAP server. Lựa chọn một ngôn ngữ, xây dựng các tiến trình nghiệp vụ và chúng ta bắt đầu tạo nên một dịch vụ Web như ý muốn. Sau đó là cung cấp dịch vụ Web này trên Internet. Các thư viện dùng để tạo web service trong Java Trong Java có hai thư viện phổ biến nhất thường được sử dụng để xây dựng một web service, đó là JAX-WS và Apache Axis. JAX-WS JAX-WS (Java API for XML Web Services) là một bộ thư viện được phát triển dưới sự quản lý của Sun Microsystem. Trang chủ của dự án https://jax-ws.dev.java.net/ là nơi cung cấp các tài liệu hướng dẫn, các bản cập nhật thường xuyên của bộ thư viện này. JAX-WS giúp tạo ra các dịch vụ web sủ dụng giao thức XML. Với việc được tích hợp sẵn trong bộ Java EE SDK và được đóng gói kèm theo trong các bộ cộng cụ tích hợp dành cho Java EE. nên JAX-WS là bộ thư viện rất phổ biến để tạo ra những dịch vụ web. Hình bên dưới thể hiện quá trình liên lạc giữa một dịch vụ web viết dựa trên JAX-WS với client. Kiến trúc của JAX-WS Các bước cơ bản để tự tay tạo một web service với JAX-WS Thông thường một web service cần có một service endpoint interface (SEI) là một interface dùng để khai báo các phương thức mà client có thể gọi đến. Tuy nhiên khi xây dựng web service với JAX-WS các SEI cần thiết phải có. Sau đó các interface SEI sẽ được cụ thể hóa bằng phiên bản cài đặt của web service (implementation class). Các bước cơ bản gồm có: Cài đặt các phương thức cho web service. Biên dịch các class của web service thành một tập tin WAR. Cài đặt và triển khai tập tin WAR lên server. Các class thành phần dùng cho việc giao tiếp với client sẽ được tạo ra bởi server trong quá trình cài đặt (deploy) Viết một ứng dụng client để gọi web service: Sử dụng công cụ wsimport (có sẵn trong Java JDK) để tạo và biên dịch các stub files của web service. Biên dịch client. Chạy client. Các lưu ý khi cài đặt một cụ thể hóa của SEI Lớp cài đặt của web service phải được đánh dấu là các class javax.jws.WebService hoặc javax.jws.WebServiceProvider (dùng annotation @). Lớp cài đặt phải được chỉ rõ là cài đặt cho interface SEI nào thông qua thuộc tính endpointInterface của @WebService, nhưng việc này không bắt buộc. Nếu không có endpointInterface nào được chỉ ra, thì class cài đặt đó sẽ được ngầm định là có một SEI. Các phương thức của lớp cài đặt phải là các phương thức public và không được là các phương thức tĩnh static hay final Các phương thức của web service cho phép client gọi cần phải có khai báo annotation là @javax.jws.WebMethod. Các tham số và các kiểu trả về của các phương thức web service cung cấp cho client phải là các kiểu nằm trong JAX-B-compatible parameters and return types. Xem Default Data Type Bindings. Lớp cài đặt không được là một lớp final hay abstract. Lớp cài đặt phải có một constructor mặc định. Lớp cài đặt không được phép định nghĩa phương thức finalize. Lớp cài đặt cần sử dụng các annotation là javax.annotation. PostConstruct hoặc javax.annotation.PreDestroy trong các hàm phục vụ việc quản lý vòng đời của các sự kiện trong Web service:một phương thức @PostConstruct được gọi bởi web service container trước khi class cài đặt của web service phản hồi lại client; các phương thức được khai báo với @PreDestroy web service container trước khi web service được gỡ bỏ. Ví dụ Tiến hành cài đặt một web service đơn giản như sau: package helloservice.endpoint; import javax.jws.WebService; @WebService() public class Hello {   private String message = new String("Hello, ");   public void Hello() {}   @WebMethod()   public String sayHello(String name) {     return message + name + ".";   } } Biên dịch web service: các web service thường được biên dịch bởi công cụ Ant. Để có thể tiến hành biên dịch Ant yêu cầu chúng ta phải cấu hình các quá trình sẽ thực thi trong lúc cài đặt bằng một tập tin XML. Đây là một tập tin… khá phức tạp và thường có mẫu sẵn trong các IDE và chúng ta chỉ việc chỉnh sửa. Thông tin về Ant build file được cung cấp rất đầy đủ tại hay có thể tham khảo các project có sẵn trong JDK (được đặt trong jdk1.version.x\ sample\webservices\) Sau khi đã làm tập tin build.xml. Vào màn hình console (Run > cmd) và di chuyển đến thư mục có chứa tập tin build.xml (thường được đặt ở ngoài cùng của project), gõ dòng lệnh sau: build Đóng gói và triển khai web service: vào thư mục của project, chạy dòng lệnh: asant create-war Kiểm tra server đã được khởi động hay chưa. Thiết lập username và password của admin để Ant có thể deploy lên server trong tập tin build.properties. Chạy dòng lệnh: asant deploy Sau khi deploy chúng ta có thể xem tập tin WSDL được tạo ra bằng cách mở trình duyệt và vào địa chỉ: ên_webservce?wsdl Ví dụ: Để gỡ bỏ web service (undeploy) gõ dòng lệnh: asant undeploy Tiến hành tạo một web service client: có hai cách Dùng trực tiếp URL của WSDL: Tạo một đối tượng của Web service một cách trực tiếp: @WebServiceRef(wsdlLocation="     helloservice/hello?wsdl") static HelloService service; Lấy một đại diện (proxy) của web service: Hello port = service.getHelloPort(); Đối tượng port kiểu Hello là class mà chúng ta cài đặt. Còn đối tượng service có kiểu là một interface HelloService, đó là một SEI do JAX-WS mặc định tạo ra khi chúng ta cài đặt một web service. Bây giờ chỉ việc gọi hàm: String response = port.sayHello(name); Source code hoàn chỉnh: package simpleclient; import javax.xml.ws.WebServiceRef; import helloservice.endpoint.HelloService; import helloservice.endpoint.Hello; public class HelloClient {   @WebServiceRef(wsdlLocation="       helloservice/hello?wsdl")   static HelloService service;   public static void main(String[] args) {     try {       HelloClient client = new HelloClient();       client.doTest(args);     } catch(Exception e) {       e.printStackTrace();     }   }   public void doTest(String[] args) {     try {       System.out.println("Retrieving the port from           the following service: " + service);       Hello port = service.getHelloPort();       System.out.println("Invoking the sayHello operation           on the port.");       String name;       if (args.length > 0) {         name = args[0];       } else {         name = "No Name";       }       String response = port.sayHello(name);       System.out.println(response);     } catch(Exception e) {       e.printStackTrace();     }   } } Ngoài cách trên, chúng ta còn có thể dùng công cụ wsimport được cung cấp trong JDK để tạo các class từ URL của tập tin WSDL: Vào màn hình dòng lệng và di chuyển đến thư mục src của client. Gõ dòng lệnh sau: wsimport -keep " Sau quá trình parse web service thành các class, chúng ta sẽ có các tập tin sau: HelloService.java Hello.java HelloResponse.java ObjectFactory.java Các bước tạo đối tượng web service tương tự nhu cách trên nhưng với một khác biệt nhỏ: static HelloService service; Chúng ta không cần URL tới WSDL nữa vì đã có các class dưới client. Về bản chất cách đầu tiên cũng thực hiện các bước ở cách thứ hai. Apache Axis Đây là bộ thư viện mã nguồn mở được phát triển bởi Apache Software Foundation. Axis hỗ trợ tạo ra các web service dựa trên giao thức SOAP. Trong báo cáo này, nhóm 23 chỉ tập trung vào xây dựng web service với JAX-WS. Các thông tin về Axis được cung cấp rất đầy đủ tại . PHẦN B: TRIỂN KHAI ĐỒ ÁN TASK MANAGER Lời nói đầu: Sau đây là đồ án triển khai áp dụng một trong kỹ thuật Webservice (SOAP) , một trong các kỹ thuật cần thiết trong nền tảng J2EE Do đây là đồ án nghiên cứu nền tảng cơ bản J2EE , nên nhóm chúng tôi tránh nhờ đến sự giíp đỡ của các framework như Spring , Hibernate hay Strut … mà sẽ tự xây dựng mô hình MVC dựa trên các kỹ thuật cơ bản của JSP , Servlet … Tuy nhiên chắc chắn sẽ không tránh khỏi những sai sót. Vi vậy, rất mong nhận được những nhận xét và những ý kiến đóng góp của quý thầy cô và các bạn để chúng ta có thể cùng trao dồi và chia sẻ kiến thức, giúp ích được trong học tập và trong công việc. Project TaskManager Giới thiệu TaskManager là một ứng dụng web được cài đặt dựa trên nền tảng Java EE. Chức năng chính của hệ thống là cung cấp một công cụ cho các nhóm làm việc vừa và nhỏ để có thể quản lý các dự án, giúp trưởng nhóm có thể phân công công việc cho các thành viên trong nhóm cũng như quản lý được các dự án. Ngoài một hệ thống chạy trên nền web, TaskManager còn cung cấp một web service, cho phép các thành viên không cần đăng nhập vào trang web của hệ thống mà vẫn có thể theo dõi được những công việc mà mình mới được giao, cập nhật trạng thái của công việc, cũng như cập nhật thông về các dự án hay các công việc mới nhất. Yêu cầu chức năng Chương trình phải cho phép người dùng (leader hay project manager , member) được phép có các thao tác cơ bản để quản lý task trong project Leader (admin , project manager) Trưởng nhóm hay người quản trị có thể: Tạo mới thành viên. Tạo mới project. Chỉnh sửa thông tin của các thành viên. Chỉnh sửa thông tin của các dự án Phân công nhiệm vụ (task) cho các thành viên. Chỉ có admin mới có quyền xóa, hủy bỏ một project, một task hay một thành viên khác. Member Các thành viên trong nhóm có thể: Truy cập vào hệ thống thông qua giao diện web Truy cập vào hệ thống thông qua một ứng dụng desktop phía client. Xem các project mà mình đã tham gia. Cập nhật các task mà mình được giao. Cập nhật trạng thái cho các task (đang làm, đã hoàn thanh hay từ chối). Các thành viên có thể xem được các task và các project mới nhất hiện chưa có thành viên nào tham gia. Mỗi thành viên có thể tham gia nhiều task. Lưu ý : Một project hay một task sẽ có số lượng thành viên nhất định do admin định trước. Cấu trúc chương trình Chương trình được thiết kế từ đầu theo mô hình MVC (Model – Controller - View): Controller : đóng vai trò quản lý điều phôi toàn bộ chương trình. Model : Xử lý các thao tác business , kết nối db , mapping object với db, trả về dữ liệu cần thiết. View : đóng vai trò hiển thị với người dùng cuối ,ngoài ra nhóm còn cài đặt cơ chế thay đổi template tùy thích dựa vào kỹ thuật định nghĩa các Custom Tag Ngoài việc cho phép user quản lý (theo dõi) task thông qua giao diện web , nhóm còn hổ trợ cho các thành viên của project theo dõi và cập nhật trạng thái task của mình thông qua một chương trình nền Destop bằng kỹ thuật webservice Chạy chương trình phía server Chọn File > Open Project, mở project có tên TaskManager_Server được đính kèm theo báo cáo này. Nhấp phải p\vào project chọn RUN, giao diện chính của màn hình xuất hiện: Nhập user và password để đăng nhập vào hệ thống: Chạy chương trình phía client Chọn File > Open Project, mở project có tên TaskManager_Client được đính kèm theo báo cáo này. Nhấp phải chọn RUN để chạy ứng dụng. Nếu đăng nhập thành công thì màn hình giao diện cơ bản của Task Manager client sẽ hiện ra: Để xem các tasks của user hiện tại chọn Show Tasks: PHỤ LỤC: XÂY DỰNG VÀ TRIỂN KHAI MỘT WEB SERVICE TỪ CÁC CÔNG CỤ CÓ SẴN Thực sự, việc tự tay xây dựng một web service là điều có thể, nhưng sẽ là rất phức tạp đối với những người mới bắt đầu vì một web service cần rất nhiều tập tin cấu hình, các bước biên dịch,… Vì vậy hầu như ngày nay các web service đều được tạo ra bàng các bộ công cụ tích hợp sẵn như NetBeans IDE, Eclipse,… Trong phần này chúng ta sẽ cùng tìm hiểu cách sử dụng các công cụ sẳn có để tạo và sử dụng một web service. Các công cụ cần thiết JDK 6 update 13 hay mới hơn ( NetBeans IDE 6.5 hay cao hơn, chú ý nên tải gói đầy đủ các ứng dụng (khoảng 240 MB) tại Ngoài ra, do các ví dụ và ứng dụng của nhóm có sử dụng cơ sở dữ liệu MYSQL nên cần cài đặt MySQL. Download bộ công cụ tich hợp: (Apache, PHP, MySQL và PHPMyAdmin) XAMPP for Windows phiên bản 1.7.1 tại Driver dùng để kết nối với cơ sở dữ liệu MySQL cho Java: version 5.1.7 Cài đặt và cấu hình các công cụ Cài đặt JDK Cài đặt NetBeans IDE: Cài đặt XAMPP for Windows: Cài đặt MySQL driver cho máy chủ Glassfish: Extract gói driver MySql. Copy tập tin mysql-connector-java-5.1.7-bin.jar vào thư mục lib trong Glassfish v2.1 (mặc định là C:\Program Files\glassfish-v2.1\lib) Tạo cơ sở dữ liệu: Khởi động máy chủ Apache: trên desktop hay vào Program Files > XAMPP > xampp-control. Ở mục Apache, nhấn Start để khởi động máy chủ Apache. Vào trình duyệt, gõ Nếu lần đầu tiên sử dụng, cần chọn ngôn ngữ hiển thị.Ở đây chúng ta chọn English. Ở vùng phía bên trái màn hình, chọn “PhpMyAdmin”: Giao diện PHPMyAdmin xuất hiện: Trong mục “Create New Databse” gõ “mytimer”, nhấn enter. Cơ sở dữ liệu “mytimer” đã được tạo: Chọn tab “SQL” trên thanh công cụ: Mở tập tin mytimer,sql (được đính kèm trong thư mục của project này). Copy nội dung của tập tin này vào và dán vào vùng “Run SQL query/queries on database mytimer”trong PHPMyAdmin: Nhấn “Go” để thực thi câu Query. Như vậy chúng ta đã cài đặt thành công CSDL mytimer cho ví dụ này: Khởi động NetBeans IDE. Chọn File > Open Project. Mở project TaskMananger_Server được kèm theo trong báo cáo này. Chọn tab “Services” Chọn mục Servers, nếu chưa có server nào thì nhấp phải chọn Add Server… Hộp thoại tạo server hiện ra: Làm theo các bước như hướng dẫn để thêm một server mới. Lưu ý là để TaskManager có thể chạy được server cần được được chọn là GlassFish V2. Sau khi đã có server, click phải chuột, chọn Start để khởi động Server: Sau khi server đã khởi động thành công.Chúng ta sẽ tiến hành tạo Connection Pool cho cơ sở dữ liệu mytimer đã tạo ở các bước trước. Mở Xampp control. Kiểm tra xem MySQL server đã được khởi động hay chưa: Vào trình duyệt, gõ để vào trang admin của GlassFish: Đăng nhập vào với user và password được thiết lập lúc cài đặt (mặc định là admin – adminadmin). Trong phần Common Tasks ở khung phía bên trái, chọn Resources: Nhấn Connection Pool, chọn New… Trong mục Name, gõ mytimer. Trong mục Resource Type chọn javax.sql.ConnectionPoolDataSource. Mục Database Vendor chọn MySQL. Nhấn Next để đến bước tiếp theo. Trong phần Additional Properties ở dưới cùng, chúng ta chỉ cần thíêt lập các thông tin sau: User: root Passsword: 123456 (user name và password đăng nhập vào database). DatabaseName:mytimer ServerName: localhost. Url: jdbc:mysql://localhost:3306/mytimer URL (chú ý có 2 url): jdbc:mysql://localhost:3306/mytimer Nhấp Finish. Nhấn Ping để test xem connection pool có liên kết được với server MySQL hay chưa. Tạo JDBC Resource: Ở khung bên trái màn hình, chọn JDBC resources,chọn New: Thiết lập giá trị cho các mục: JNDI Name: jdbc/mytimer Pool Name: mytimer Nhấn OK để hoàn tất. Tạo một web service trong NetBeans IDE Trong NetBeans, chọn File > New Project. Trong mục Categories chọn Java Web. Ở khung phía bên phải chọn Web Application. Các bước thiết lập khác cứ để mặc định hoặc có thể tùy chỉnh lại theo ý muốn. Nhấn Finish. Sau đó trong mục Web Services, nhấp phải, chọn New > Web Service… Các bước còn lại có thể làm như ví dụ trên hay làm theo các chỉ dẫn rất trực quan của NetBeans. Tạo một Web Service Client trong NetBeans Các hướng dẫn chi tiết về tạo một web service và web service client có thể tham khảo tại Trong NetBeans chọn New > Project. Chọn Java > Java Application. Click phải vào project và chọn New > Web Service client. Sau đó làm theo hướng dẫn của NetBeans. Cài đặt và chạy ứng dụng Trong NetBeans IDE, vào thẻ Projects, nhấp phải lên project TaskManager, chọn Deploy: Sau khi deploy thành công, vào Web Services trong project TaskManager, nhấp phải lên MyTimerWs chọn Test Web Service để test web service: Tuy nhiên bước này không cần thiết vì sau khi deploy thì web service đã có thể sử dụng được từ phía client. Lời kết Web service với khả năng chạy linh độn

Các file đính kèm theo tài liệu này:

  • docWeb service trong java.doc