Giáo trình Java - Chương 3
lượt xem 51
download
Phát triển Web Service với các công nghệ chuẩn của java Mục đích Giới thiệu và hướng dẫn sử dụng các công nghệ và công cụ chuẩn do Sun cung cấp để làm việc với Web Service. 2. Người đọc Yêu cầu có kiến thức cơ bản về tư duy lập trình và ngôn ngữ Java.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình Java - Chương 3
- Giáo trình Java C hương 3 Phát triển Web Service với các công nghệ chuẩn của java Bài viết gồm 6 phần: I. Giới thiệu II. Tổng quan các công nghệ III. Các công nghệ nền tảng của Web Service IV. Các công nghệ của Java hỗ trợ Web Service V . Các công cụ để sử dụng các công nghệ của Java cho web V I. Mô hình lập trình I. Giới thiệu 1 . Mục đích G iới thiệu và hướng dẫn sử dụng các công nghệ và công cụ chuẩn do Sun cung cấp để làm việc với Web Service. 2 . Người đọc Y êu cầu có kiến thức cơ bản về tư duy lập trình và ngôn ngữ Java. 3 . Tham khảo http://www.w3.org/2002/ws/ http://ws.apache.org/ http://java.sun.com/webservices/ II. Tổng quan các công nghệ Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java Figure 1 Các công nghệ và công cụ WS Figure 2 Kiến trúc hướng dịch vụ III. Các công nghệ nền tảng của Web Service 1 . XML (eXtensible Markup Language) • Đ ã trở thành chuẩn cho việc mô tả dữ liệu được trao đổi trên nền web. Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java • Là ngôn ngữ đánh dấu, sử dụng các thẻ (tag) để đánh dấu nội dung của văn bản và định nghĩa cấu trúc của thông tin. • V d: • Tài liệu XML phải tuân theo một cấu trúc chuẩn (Well-formed). • Tài liệu XML thường được kết hợp với lược đồ XML (XML Schema) để quy định cú p háp và cấu trúc các thẻ được sử dụng trong tài liệu XML. • D o có các tính chất trên nên tài liệu XML có thể dễ dàng được xử lý bởi các ứng dụng và X ML là ngôn ngữ dữ liệu cho Web Service. 2 . SOAP (Simple Object Access Protocol) Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java Figure 3 Một SOAP Message • Là giao thức cấp cao dựa vào XML để trao đổi thông tin trong các hệ thống phân tán. • SOAP cung cấp một định dạng chung cho các dữ liệu được trao đổi giữa client và server. • Đ ơn vị trao đổi thông tin cơ b ản của SOAP là 1 SOAP message. • SOAP Message chính là một SOAP Envelope trong đó chứa SOAP Body và có thể chứa SOAP Header. • SOAP Envelope xác định XML Namespace và loại encoding được sử dụng trong SOAP message. • SOAP header được sử dụng để cho các ứng dụng quyết định việc xử lý SOAP message như thế nào. • V d: Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java ? 3 . WSDL (Web Service Definition Language) • Client và server giao tiếp với nhau thông qua việc gửi các SOAP message. WSDL định nghĩa ra nội dung và câu trúc của SOAP message đó. • WSDL là tài liệu XML đùng để mô tả interface của Web service. • Tài liệu WSDL định nghĩa một lược đồ XML cho việc mô tả web service. • V d: Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java IV. Các công nghệ của Java hỗ trợ Web Service 1 . JAXP (Java API for XML Processing) • Là một tập hợp các API cho việc xử lý tài liệu XML • Bao gồm các tập API con để xử lý tài liệu XML như DOM, SAX. 2 . JAX-RPC (Java API for XML – Remote Produce Call) • Tập hợp các API để cung cấp các service bằng XML-RPC. • Cho phép Java gọi các phương thức của Web Service thông qua các hệ thống phân tán. • K hông giới hạn việc sử dụng nền Java cho cả client và server. Client sử dụng JAX-RPC có thể gọi Web Service trên các nền tảng khác nhau. Client không dùng Java cũng có thể gọi các Web Service sử dụng công nghệ Java với Jax-RPC. • Đ ược thiết kế để đơn giản việc sử dụng SOAP. Lập trình viên không cần phải làm công việc xử lý trực tiếp với SOAP mà chỉ cần sử dụng ngôn ngữ Java và các tập API của Java. Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java • Từ phiên bản WSDP 2.0. JAX-RPC được đặt tên lại thành JAX-WS. 3 . JAXB (Java API for XML Data Binding) • Cung cấp các phương thức để mapping tài liệu XML thành 1 tập hợp các đối tượng Java và các Interface dựa trên lược đồ XML. • Làm việc trực tiếp với XML thay vì phải xử lý nội dung XML. • Công việc được thực hiện với 2 bước chính đó là: o Sử dụng bộ binding compiler được cung cấp với JAXB để binding lược đồ XML thành các đối class Java và các interface. o Sử dụng các phương thức gắn kết dữ liệu XML với các class và interface được tạo ra. 4 . SAAJ (SOAP with Attachment API for Java) • Một tập hợp API tuân theo đặc tả SOAP with Attachment. • D ùng để tạo ra SOAP message có hoặc không có đình kèm dữ liệu nhị phân. 5 . XWS (XML and Web Service Sercurity) • Cung cấp bảo mật cấp SOAP message cho các ứng dụng sử dụng JAX-RPC. • Thông tin bảo mật được chứa trong SOAP header. • Mục đích dùng để chống các sự truy cập trái phép khi message được gửi trên đường truyền. V. Các công cụ để sử dụng các công nghệ của Java cho web service. 1 . APT • Apt là công cụ cung cấp phương tiện cho việc xử lý các annotation được thêm vào trong Java b ởi JSR 175. JSR 175 cho phép lập trình viên khai báo những loại bổ nghĩa cấu trúc m ới để kết hợp với thành phần trường, phương thức, class. • Ant task cho apt được cung cấp bởi JAX-WS • V d:
- Giáo trình Java classpath="classpath" d estdir="directory for generated class files" sourcedestdir="directory for generated source files" nocompile="true|false" p rint="true|false" factorypath="" factory="name of AnnotationProcessorFactory to use" x listannotationtypes="true|false" x listdeclarations="true|false" xprintaptrounds="true|false" xprintfactoryinfo="true|false" x classesasdecls="true|false" d ebug="true|false" d ebuglevel="lines|vars|source" nowarn="true|false" Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java d eprecation="true|false" bootclasspath="" extdirs="" endorseddirs="" sourcepath="" encoding="specify character encoding used by source files" target="generate class files for specific virtual machine version"> ... ... • Bảng các tuỳ chọn của công cụ apt verbose: In ra thông báo classpath: Đường dẫn đến các class và thư viện d estdir: Xác định nơi chứa các class được biên d ịch sourcedestdir: Xác đ ịnh nơi chứa các file source java được tạo ra nocompile: Không biên dịch các file source java p rint: In ra máy in d ebug: Tạo ra các thông tin debug d ebuglevel: Cấp độ debug: lines, vars, sources nowarn: Không tạo ra các cảnh báo sourcepath: Xác định đường dẫn đến các file source java Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java encoding: Xác định encoding được sử dụng cho các file source java target: Tạo ra các file class ứng với một phiên bản nhất định option: Các tuỳ chọn đối với bộ xử lý annotation • V d: 2 . WSImport • Công cụ để tự động tạo ra các file class và source java để làm việc với web service dựa vào tài liệu wsdl. • WSImport Ant task được cung cấp bởi JAX -WS. • Bảng các tuỳ chọn của wsimport wsdl WSDL file d estdir:Xác đ ịnh đường dẫn chứa các file class được tạo ra sourcedestdir:Xác định đường dẫn chứa các file source java được tạo ra verbose: Hiện thông báo b inding: Xác đ ịnh find dùng để binding dữ liệu p ackage: Xác định package • V d: Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java Mình đã gửi file đính kèm ví dụ của bài viết ở trong bài đầu tiên. ---------------------------------------- ------------- http://javasimple.wordpress.com Phần 6: Phát triển Web Service với các công nghệ chuẩn của java! V I. Mô hình lập trình Chúng ta sẽ xây dựng một ứng dụng web service nhỏ để thể hiện các công cụ và công nghệ java cho web service. Ứng dụng này có một web service end point cung cấp hai p hương thức đơn giản String sayHello(String name) và UserBean getUserBean(String userName). 1 . Server Figure 4 Cấu trúc cây thư mục • Các bước cơ bản để tạo một ứng dụng web service phía server o Viết các file java Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java o Sử dụng công cụ apt để tạo ra các file class cho web service. o Đóng gói các class và resourse thành ứng dụng web (file war). o Triển khai ứng dụng. • Y êu cầu phải có cài j2sdk 1.5.06 và có tất cả các thư viện trong bộ WSDP 2.0. Biên dịch các file java ở chế độ tương thích với phiên bản java 1.5. 1 .1. Viết các file Java • V iết các java bean được dùng để lưu trữ dữ liệu được truyền giữa client và server. Document.java p ackage helloservice.endpoint; import java.util.Date; p ublic class Document { p rivate String name; p rivate Date createdDate; p ublic Date getCreatedDate() { return createdDate; } p ublic void setCreatedDate(Date createdDate) { this.createdDate = createdDate; } p ublic String getName() { return name; } Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java p ublic void setName(String name) { this.name = name; } } U serBean.java p ackage helloservice.endpoint; p ublic class UserBean { p rivate String username; p rivate String password; p rivate Document document; p ublic Document getDocument() { return document; } p ublic void setDocument(Document document) { this.document = document; } p ublic String getPassword() { return password; } p ublic void setPassword(String password) { this.password = password; Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java } p ublic String getUsername() { return username; } p ublic void setUsername(String username) { this.username = username; } } • V iết file java thi hành web service H ello.java p ackage helloservice.endpoint; import java.util.Date; import javax.jws.WebMethod; import javax.jws.WebService; @WebService() p ublic class Hello { p rivate String message = new String("Hello, "); p ublic void Hello() { } @WebMethod() p ublic String sayHello(String name) { Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java return message + name; } @WebMethod() p ublic UserBean getUserBean(String username) throws Exception{ if(username.equals("cuonglm")) throw new Exception("User not found"); U serBean userBean=new UserBean(); Document doc=new Document(); doc.setName("My Doc"); doc.setCreatedDate(new Date()); userBean.setUsername(username); userBean.setPassword("password"); userBean.setDocument(doc); return userBean; } } • Trong thấy trong file java thi hành web service có sử dụng các annotation. o @WebService được sử dụng để đánh dấu một lớp Java là thi hành web service hoặc là đ ánh dấu một interface định nghĩa web service interface. o @WebMethod làm cho một phương thức trở thành một phương thức web service. 1 .2. Sử dụng công công cụ apt để biên dịch • Chúng ta phải đảm bảo các thư viện của WSDP đều có trong class path. • Tạo file build.xml. Định nghĩa apt ant task: Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java • Sau đó tạo một target build: • Chúng ta sử dụng câu lệnh ant build để chạy file build.xml từ dòng lệnh hoặc có thể sử d ụng Eclipse để chạy file build.xml. • Sau khi build xong chúng ta sẽ thấy apt tạo thêm một số file java cho web service. 1 .3. Đóng gói thành ứng dụng web V iết file cấu hình định nghĩa web service sun-jaxws.xml với nội dung sau
- Giáo trình Java implementation='helloservice.endpoint.Hello' url-pattern='/hello'/> • Thẻ endpoint dùng để định nghĩa một web service end point. Thuộc tính name xác định tên của web service. Thuộc tính implementation xác định lớp thực thi web service. url- pattern là đường dẫn tương đối của ứng dụng với ứng dụng web chúng ta triển khai web service (http://localhost:8080/hello/hello). • V iết file cấu hình web cho ứng dụng web: web.xml HelloService com.sun.xml.ws.transport.http.servlet.WSServletContextListener HelloService HelloService com.sun.xml.ws.transport.http.servlet.WSServlet HelloService /hello Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java 30 • Tương ứng với mỗi web service được định nghĩa trong file sun-jaxws.xml chúng ta sẽ đ ịnh nghĩa một servlet trong file web.xml. Display name và servlet name có cùng tên với web service, servlet class là mặc định. url-pattern tương ứng với url-pattern của web service trong file sun.jaxws.xml. • Tạo thêm một target create-war trong file build.xml để đóng gói ứng dụng thành ứng d ụng web. Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
- Giáo trình Java • Build từ dòng lệnh với câu lệnh ant create-war hoặc build từ trong Eclipse. • Chúng ta sẽ nhận được một file là hello.war. 1 .4. Triển khai ứng dụng • Copy file war vào web server tomcat 5.5 hoặc JBoss 4.03 sau đó gõ vào trình duyệt dòng sau để kiểm tra: http://localhost:8080/hello/hello?wsdl ---------------------------------------- ------------- http://javasimple.wordpress.com Một số đường dẫn đến các file thư viện trong bài ví dụ mình viết để đường dẫn tuyệt đối. Các bạn khi download về thì phải sửa cho đúng với đường dẫn trên máy của bạn mới chạy đ ược. ---------------------------------------- ------------- http://javasimple.wordpress.com 2 . Client Ths. Nguyễn Trọng Dũng Trường ĐHSP Hà Nội
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình môn học Java Server Pages
118 p | 338 | 124
-
Giáo trình Lập trình viên công nghệ Java (Module 3) - Trung tâm tin học ĐH KHTN
176 p | 332 | 102
-
Giáo trình Lập trình viên công nghệ Java (Module 1) - Trung tâm tin học ĐH KHTN
105 p | 308 | 81
-
Giáo trình Lập trình viên công nghệ Java (Module 2) - Trung tâm tin học ĐH KHTN
129 p | 224 | 80
-
Lập trình Java cơ bản : Tổng quan lập trình Java part 3
5 p | 144 | 45
-
Giáo trình : Lập trình hướng đối tượng với Java part 3
31 p | 119 | 42
-
giáo trình Java By Example phần 3
57 p | 116 | 36
-
Bài giảng lập trình java - Bài 3
11 p | 121 | 36
-
BÀI GIẢNG: JAVA 2D
32 p | 163 | 34
-
Giáo trình lập trình với CoreJava - 3, 4
0 p | 111 | 31
-
Giáo trình : Lập trình hướng đối tượng với Java part 10
24 p | 102 | 29
-
Bài giảng Lập trình Java 3 - Bài 1: Tổng quan về Lập trình giao diện Java
35 p | 84 | 8
-
Lập trình Java cơ bản : Multithreading part 3
5 p | 59 | 8
-
Bài thực hành Lập trình Java 3 - Bài 2
5 p | 147 | 6
-
Bài thực hành Lập trình Java 3 - Bài 1
7 p | 141 | 4
-
Bài thực hành Lập trình Java 3 - Bài 3
2 p | 101 | 3
-
Bài thực hành Lập trình Java 3 - Bài Assignment
5 p | 163 | 3
-
Bài thực hành Lập trình Java 3 - Bài 4
2 p | 92 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn