Sử dụng thiết bị di động sử dụng Android để consume các định dạng text, xml và json từ web service được host trên JBoss với RestEasy framework
Mục đích: Nội dung của chủ đề thực hiện tạo web service với RestEasy framework trên JBoss. Bên cạnh đó, trình bày cách host ứng dụng được deploy trên JBoss để cho phép truy cập từ bên ngoài. Cuối cùng, sử dụng thiết bị di động trên nền ứng dụng viết trên Android để consume web service được host trên JBoss với các định dạng text, xml và json thông qua một ví dụ cụ thể
Sử dụng thiết bị di động sử dụng Android để consume các định dạng text, xml và json từ web service được host trên JBoss với RestEasy framework
Mục đích: Nội dung của chủ đề thực hiện tạo web service với RestEasy framework trên JBoss. Bên cạnh đó, trình bày cách host ứng dụng được deploy trên JBoss để cho phép truy cập từ bên ngoài. Cuối cùng, sử dụng thiết bị di động trên nền ứng dụng viết trên Android để consume web service được host trên JBoss với các định dạng text, xml và json thông qua một ví dụ cụ thể
Yêu cầu
- Nắm vững các khái niệm về Restful và đã cài đặt được Web Service sử dụng Restful (tham khảo http://www.kieutrongkhanh.net/search/label/Web%20Services )
- Nắm vững kiến thức về Android và cách xây dựng ứng dụng trên nền Android và cách consume dữ liệu trên điện thoại (tham khảo loạt bài http://www.kieutrongkhanh.net/2016/09/xay-dung-mot-he-thong-ung-dung-su-dung.html )
- Nắm vững các deploy ứng dụng trên JBoss (tham khảo về các bài EJB http://www.kieutrongkhanh.net/search/label/EJB )
- Nắm vững kiến thức về xây dựng backend cho ứng dụng web (tham khảo về các bài EJB tại http://www.kieutrongkhanh.net/search/label/EJB hay Servlet-JSP tại http://www.kieutrongkhanh.net/search/label/Servlet%26JSP )
- Nắm vững kiến thức về sử dụng JAXB để chuyển đổi dữ liệu từ XML thành Java Object và ngược lại
Các yêu cầu của ứng dụng
Viết chương trình cho phép người dùng login vào hệ thống sử dụng thiết bị di động trên nền Android. Sau khi login thành công. Hệ thống trình bày tất cả các account trong hệ thống. Ngoài ra hệ thống cho phép người dùng lọc dữ liệu bằng cách nhập ký tự có chứa trọng phần tên - Lastname và giao diện sẽ trình bày những account có chứa ký tự đó
Yêu cầu hệ thống là các chức năng được tạo thành API và được đặt trên web để người dùng thiết bị di động hay web và ứng dụng khác nhau để kết nối đến API thông qua web services.
Web Service được yêu cầu sử dụng Restful và được deploy trên server JBoss
Cấu trúc của dữ liệu được lưu trữ trong DB như sau
Dữ liệu mẫu ví dụ
Các bước thực hiện
- Tool yêu cầu
- Netbeans 7.2 đến 7.4
- Jboss 6.1.0 Final
- Eclipse có cài đặt plugin cho lập trình Android
- Framework RestEasy 2.3.2 Final chạy trên nền Jboss. Thực hiện download tại địa chỉ http://sourceforge.net/projects/resteasy/files/Resteasy%20JAX-RS/
- Thư viện gson 2.2.4 jar để hỗ trợ convert kết quả thành dạng json (https://code.google.com/p/google-gson/downloads/detail?name=google-gson-2.2.4-release.zip&)
- Thực hiện tạo web project sử dụng server jboss sử dụng Netbeans với cấu trúc bên dưới (Nếu đã có web service thì bỏ qua các bước tạo service)
- Tạo Restful Web Service trên JBoss phải thực hiện với framework RestEasy
- Sau khi download RestEasy, thực hiện giải nén và lựa chọn các gói jar trong thư mục bên dưới để add vào project
- Thực hiện tạo code kết nối đến DB
- Thực hiện hàm checkLogin
- Thực hiện tìm kiếm account chứa 1 ký tự trong lass name
- Tạo JAXB object để đón nhận hay mapping dữ liệu trong DB. Lưu ý phải đặt các annotation @ đúng chính xác để hỗ trợ chuyển đổi dữ liệu
- Cấu hình web service để có thể truy cập được khi được host lên server
- Lưu ý: Trong khung hình bên dưới tên class được new trong constructor của ApplicationConfig chính là tên class chứa các phương thức đưa ra ngoài làm API cho web services
- Tạo class support Restful Service như trong bài tạo RestFul để đưa các API service ra bên ngoài với các chức năng như yêu cầu
- Phương thức checkLogin , thành công trả về chữ true, không đúng trả về chữ false
- Phương thức searchLikeLastname, chuỗi trả về định dạng XML
- Phương thức searchLikeLastnameJSON, chuỗi trả về định dạng JSON
- Lưu ý: Việc viết code thực hiện như bình thường, cấu trúc XML và JSON sẽ do hệ thống tự hỗ trợ
- Thực hiện cấu hình web.xml để đưa web services ra ngoài
- Thực hiện deploy trên server JBoss
- Deploy thành công
- và
- Thực hiện chạy thử để kiểm tra
- Test checkLogin
- Test searchLikeLastname
- Test searchLikeLastnameJSON
- File JSON
- Với cấu trúc chứa dữ liệu
- Chúng ta đã hoàn tất xong webservice chạy trên nền JBoss Server. Tuy nhiên, các service này chỉ được truy cập ngay tại máy cục bộ theo local host, chưa được truy cập được từ bên ngoài vào
Các bước thực hiện deploy và đưa service cho phép truy cập từ bên ngoài - không chỉ truy cập tại localhost
- Sau khi test xong, tắt tất cả tool, chạy server jboss bằng tay, deploy gói ứng dụng vào server sau khi server khới động xong
- Lưu ý tham số -b 0.0.0.0 để host service từ máy desktop và laptop ra ngoài cho phép truy cập khi test điện thoại
- Xác định địa chỉ IP của máy desktop
- Lưu ý: Để test ứng dụng trên máy điện thoại và service trên máy desktop/laptop thì cả hai phải cùng địa chỉ mask - cùng mạng. Đối với web service thực sự thì không cần phải làm gì cả ngoài trừ bật wifi cho điện thoại
- Test lại lần nữa với địa chỉ ip cụ thể - không dùng localhost
Các bước xây dựng ứng dụng điện thoại chạy trên nền Android để consume các web service sử dụng Eclipse
- Phát triển ứng dụng trên điện thoại với cấu trúc
- Code mở kết nối đến server dùng http
- Code download hay consume chuỗi từ một webservice API
- Code download chuỗi XML từ web service
- Code để parse XML đưa thành object java
- Code để lấy chuỗi JSon từ web service
- Tạo Java object để đón nhận dữ liệu
- Tạo Adapter để đưa dữ liệu từ object vào trong từng đối tượng trong List list layout
- Layout của từng item trong list
- Tạo layout của mainActivity
- Viết code cho mainActivity để xử lý
- Code xử lý sẽ chuyển sang list
- Tạo List Activity với layout
- Viết code xử lý cho List
- Bổ sung việc truy cập Internet cho ứng dụng
- Chạy và test deploy trên ứng dụng
- Login sai
- Login đúng, show hết
- Nhập a vào Name
- Nhấn Load From XML. Kết quả
- Nhập n
- Nhấn nút Load From Json. Kết quả
Chúc mừng quí vị đã hoàn tất việc tạo web service trên nền JBoss Server sử dụng RestEasy Framework sau đó thực hiện consume chúng qua điện thoại di động với ứng dụng sử dụng Android với các định dạng output từ text, xml đến json. Qua bài này, quí vị được biết cách host ứng dụng chạy trên Jboss ra ngoài khi thực hiện implement và testing. Rất mong sự đóng góp của quí vị. Hẹn gặp quí vị ở một chủ đề khác
Không có nhận xét nào:
Đăng nhận xét