intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Máy ứng dụng của Google cho Java: Phần 1: Rồ máy lên!

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:39

111
lượt xem
20
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Máy ứng dụng của Google cho Java: Phần 1: Rồ máy lên! Xây dựng các ứng dụng sát thủ dựa trên Java, mở rộng được với Máy ứng dụng cho Java Rick Hightower , Giám đốc, eBlox Tóm tắt: Bạn có nhớ khi mà Máy ứng dụng của Google (Google App Engine) chỉ dành cho những người lập trình Python (Pythonistas) không? Những ngày đen tối. Google Inc đã mở nền tảng điện toán đám mây của mình cho các nhà phát triển Java™ trong tháng 4 năm 2009. Trong loạt bài viết ba phần này, Rick Hightower, một huấn...

Chủ đề:
Lưu

Nội dung Text: Máy ứng dụng của Google cho Java: Phần 1: Rồ máy lên!

  1. Máy ứng dụng của Google cho Java: Phần 1: Rồ máy lên! Xây dựng các ứng dụng sát thủ dựa trên Java, mở rộng được với Máy ứng dụng cho Java Rick Hightower , Giám đốc, eBlox Tóm tắt: Bạn có nhớ khi mà Máy ứng dụng của Google (Google App Engine) chỉ dành cho những người lập trình Python (Pythonistas) không? Những ngày đen tối. Google Inc đã mở nền tảng điện toán đám mây của mình cho các nhà phát triển Java™ trong tháng 4 năm 2009. Trong loạt bài viết ba phần này, Rick Hightower, một huấn luyện viên và tác giả viết về công nghệ Java giúp bạn bắt đầu với nền tảng tin cậy, vững chãi và đầy vui thú này để phát triển ứng dụng dựa trên Java. Trong bài này, bạn sẽ có được một tổng quan về lý do tại sao Máy ứng dụng của Google cho Java có thể là nền tảng để tiếp tục phát triển những ứng dụng sát thủ (N.D: “killer app” tiếng lóng của các lập trình viên, để chỉ một ứng dụng được viết tài tình, đặc biệt hữu ích, hàm ý nó giống như các sát thủ đối với người chơi những trò chơi điện tử), có khả năng mở rộng cao của bạn, sau đó bắt đầu sử dụng các trình cắm thêm (Plugin) của Google cho Eclipse để xây dựng hai ứng dụng ví dụ: một dựa trên bộ công cụ Web của Google (Google Web Toolkit - GWT) và một dựa trên API Servlet của Java. Bạn sẽ tự mình tìm hiểu Máy ứng dụng của Google cho Java làm nên sự khác biệt như thế nào, cả trong việc xây dựng một ứng dụng từ đầu lẫn trong việc triển khai nó dành cho số người truy cập lên đến năm triệu. (Và đó mới chỉ là phiên bản miễn phí.) Một ý tưởng cũng giống như chỗ ngứa: bạn cần phải gãi nó và khi đó cảm thấy thỏa mãn hơn. Với vai trò là những nhà phát triển phần mềm, chúng ta dành nhiều thời gian nghĩ ra những ý tưởng cho các loại ứng dụng khác nhau. Thật là vui, phải vậy không? Nhưng cái khó là tìm ra cách để làm cho một sản phẩm phần mềm đơm hoa kết trái. Thật là hài lòng khi tưởng tượng ra một cái gì đó và sau đó tạo ra nó. Còn trái lại (một chỗ ngứa không được gãi) thì đúng là khó chịu thật. Một lý do làm cho nhiều ứng dụng không bao giờ phát triển được là cần có một cơ sở hạ tầng. Một cơ sở hạ tầng được duy trì tốt thường liên quan đến một đội các nhà quản trị hệ thống, các nhà quản trị cơ sở dữ liệu (DBA) và các kỹ sư mạng, mà cho đến gần đây, vẫn là một hoạt động kinh doanh chủ yếu dành cho người giàu. Thậm chí trả tiền cho một bên thứ ba để cho lưu trú các ứng dụng của bạn cũng không đơn giản: điều gì sẽ xảy ra nếu bỗng nhiên ứng dụng nổi tiếng tăng vọt và có rất nhiều lượt truy cập? Cái gọi là hiệu ứng Slashdot (sự kiện số người truy cập đến trang Web bất thình lình tăng vọt) có thể vứt một ý tưởng tốt vào hố rác, đơn giản vì thật khó dự đoán những đột biến tải.
  2. Tuy nhiên, như chúng ta đều biết, điều đó đang thay đổi. Những tiền đề cho các dịch vụ Web đã phát triển lên và ngày nay nó mang lại cho chúng ta những phương tiện, thông qua điện toán đám mây và người anh em tráng kiện hơn của nó, đó là nền tảng-như là-một dịch vụ (PAAS - platform-as-a-service), để xây dựng, triển khai và phân phối các ứng dụng dễ dàng hơn. Bây giờ, khi bạn viết Twitter (dịch vụ mạng xã hội miễn phí) tiếp theo và triển khai nó trên một nền tảng đám mây, nó sẽ có thể mở rộng, bạn thân mến ạ, mở rộng mãi. Trong bài viết ba phần này, bạn sẽ học qua thực hành tại sao điện toán đám mây/PAAS là một bước nhảy tiến hóa quan trọng như vậy cho sự phát triển phần mềm, và đồng thời cũng bắt đầu với một nền tảng mới thú vị để phát triển Java: Máy ứng dụng của Google cho Java, hiện đang sẵn có dưới dạng phiên bản xem trước. Tôi sẽ bắt đầu với một tổng quan về Máy ứng dụng (App Engine) cho Java, bao gồm các kiểu dịch vụ ứng dụng mà nó cung cấp. Sau đó bạn sẽ đi thẳng vào một ví dụ ứng dụng — ví dụ đầu tiên trong hai ví dụ — bằng cách sử dụng trình cắm thêm của Google cho Eclipse làm Máy ứng dụng cho Java. Ví dụ ứng dụng đầu tiên sẽ sử dụng sự hỗ trợ của Máy ứng dụng cho Java đối với giao diện lập trình ứng dụng (API) dành cho Servlet Java và ví dụ ứng dụng thứ hai sẽ sử dụng sự hỗ trợ của nó đối với bộ công cụ Web của Google (GWT). Trong Phần 2, bạn sẽ tạo ra một ứng dụng quản lý liên lạc nhỏ bằng cách sử dụng sự hỗ trợ của Máy ứng dụng cho Java đối với các servlet và GWT, tương ứng. Và trong Phần 3, bạn sẽ sử dụng ứng dụng được xây dựng tuỳ chỉnh của bạn để khám phá sự hỗ trợ lưu giữ lâu bền dựa trên Java của Máy ứng dụng cho Java, sự hỗ trợ này dựa trên các đối tượng dữ liệu Java (Java Data Objects-JDO) và API dành cho lưu giữ lâu bền của Java (Java Persistence API - JPA). Thôi, nói thế là đủ: Hãy rồ máy lên! Về Máy ứng dụng của Google cho Java Google (tôi tin rằng cũng là nhà sản xuất một số dạng máy tìm kiếm) đầu tiên đã phát hành Máy ứng dụng của Google trong tháng 4 năm 2008. Thật thất vọng với nhiều nhà phát triển Java, bản phát hành đầu tiên đã thuần túy là lĩnh vực của các lập trình viên Python — những người cho rằng khoảng trống nên được sử dụng cho các khối! (Tôi đã viết một cuốn sách về Python, vì vậy tôi biết rõ). Google đã đáp lại yêu cầu của đông đảo mọi người bằng cách phát hành Máy ứng dụng của Google cho Java trong tháng 4 năm 2009. Máy ứng dụng của Google cho Java cung cấp một giải pháp xuyên suốt từ đầu đến cuối để phát triển ứng dụng Java doanh nghiệp: một giao diện người dùng đồ họa (GUI) Ajax dựa trên trình duyệt cho dễ sử dụng, hỗ trợ công cụ Eclipse và Máy ứng dụng của Google ở mặt sau. Tính dễ sử dụng và có công cụ đầy đủ cũng là các
  3. lợi thế của Máy ứng dụng của Google cho Java so với các giải pháp điện toán đám mây khác. Phát triển ứng dụng trong Máy ứng dụng cho Java có nghĩa là sử dụng nguồn tài nguyên của Google để lưu trữ và lấy ra các đối tượng Java. Lưu trữ dữ liệu dựa trên BigTable, nhưng với các giao diện JDO và JPA cho phép bạn viết mã mà không bị ràng buộc trực tiếp với BigTable. Trong thực tế, Google cung cấp hỗ trợ dựa trên các tiêu chuẩn cho nhiều API để bạn có thể viết mã mà không bị ràng buộc 100% với nền tảng Máy ứng dụng cho Java. Máy ứng dụng cho Java dựa trên các Java API tiêu chuẩn sau đây: java.net.URL để tìm nạp các dịch vụ (bằng cách giao tiếp với các máy chủ  khác, sử dụng giao thức HTTP và HTTPS). JavaMail để gửi thông điệp thư điện tử.  Một giao diện JCache (JSR 107) cho bộ nhớ truy cập nhanh (Memcache) để  cung cấp sự lưu trữ phân tán tạm thời, nhanh chóng để lưu trữ trong bộ nhớ truy cập nhanh (caching) các truy vấn và các tính toán. Triển khai Máy ứng dụng cho Java trên WebSphere/DB2 Khi thông báo khai trương Máy ứng dụng cho Java, các đại diện từ Google và IBM® đã triển khai cùng ứng dụng mẫu như nhau trên DB2®/WebSphere®. IIBM đang làm việc để cung cấp sự hỗ trợ API của Google mức thấp cho Tivoli® LDAP và DB2 sao cho các ứng dụng đã xây dựng với Máy ứng dụng cho Java cũng có thể chạy trên sự xếp chồng nền tảng WebSphere/DB2 của IBM. Ngoài ra, Máy ứng dụng cho Java cung cấp hỗ trợ cho các dịch vụ ứng dụng sau đây: Xác thực và cấp quyền cho người dùng.  CRON  Nhập/xuất dữ liệu.  Truy cập đến dữ liệu tường lửa.  Nhập/xuất dữ liệu là quan trọng cho việc di chuyển dữ liệu từ các nguồn khác vào ứng dụng của Máy ứng dụng cho Java của bạn. Đây là một cách khác mà bạn không bị ràng buộc với Máy ứng dụng cho Java. Hỗ trợ CRON của Google được
  4. dựa trên một URL nội bộ, nhận các truy cập theo một lịch trình nhất định, làm nó trở thành một dịch vụ tốt đẹp mà không có nhiều ràng buộc với Máy ứng dụng cho Java. Cơ chế xác thực và cấp quyền cho người dùng là đặc thù riêng cho Máy ứng dụng cho Java, nhưng bạn có thể viết một ServletFilter, một khía cạnh, hoặc trình cắm thêm An ninh Spring để giảm thiểu việc ghép buộc chặt chẽ đó. Tạo ứng dụng đầu tiên của bạn bằng Máy ứng dụng cho Java Nếu bạn đọc đến đây thì bạn đã sẵn sàng để bắt đầu xây dựng ứng dụng đầu tiên của bạn bằng Máy ứng dụng cho Java. Bước đầu tiên của bạn là cài đặt trình cắm thêm Google (Plugin Google) cho Eclipse cho Máy ứng dụng cho Java; khi hoàn thành việc này, bạn có thể tiếp tục. Mở Eclipse IDE của bạn và bạn sẽ thấy ba nút mới trong Eclipse IDE của bạn bên cạnh nút Printer (Máy in): một chữ G trong một quả bóng màu xanh, một G trong một hộp dụng cụ màu đỏ và một hình máy bay phản lực nhỏ của Máy ứng dụng cho Java, như trong Hình 1: Hình 1. Các nút mới sáng lên trong Eclipse IDE của bạn Đây là những gì các nút đó thực hiện: Quả bóng màu xanh cho phép bạn truy cập vào trình thủ thuật tạo dự án của  Máy ứng dụng cho Java. Hộp dụng cụ màu đỏ cho phép bạn biên dịch một dự án GWT.  Hình máy bay phản lực nhỏ là chìa khóa của bạn để triển khai một dự án  Máy ứng dụng. Bạn sẽ sử dụng trình thủ thuật tạo dự án để tạo ra hai dự án mới: một dựa vào các servlet và dự án kia được xây dựng bằng cách sử dụng GWT. Bạn sẽ sử dụng chức năng của hộp công cụ để biên dịch một dự án GWT. Bạn sẽ khởi chạy máy bay phản lực nhỏ khi bạn đã sẵn sàng triển khai dự án Máy ứng dụng, làm cho nó hoạt động.
  5. Bây giờ bắt đầu bằng cách tạo ra một dự án của Máy ứng dụng cho Java. Tr ước tiên, hãy nhấn vào quả bóng màu xanh để truy cập vào trình thủ thuật tạo dự án. Sau đó, tạo một ứng dụng được gọi là SimpleServletApp bằng cách sử dụng gói có tên là gaej.example, như trong Hình 2: Hình 2. Bắt đầu một dự án mới Chú ý rằng người ta đã bỏ đánh dấu chọn hỗ trợ GWT cho ví dụ đơn giản đầu tiên này. Sau khi bạn hoàn thành bước này, trình thủ thuật tạo dự án sẽ tạo một ứng dụng đơn giản dựa trên servlet có một servlet kiểu “Xin chào thế giới”. Hình 3 cho thấy một ảnh chụp màn hình của dự án đó:
  6. Hình 3. Dự án SimpleServletApp Hãy chú ý các tệp JAR được tự động bao gồm cho dự án dựa trên servlet mới này: datanucleus-*.jar: Để truy cập vào kho lưu trữ dữ liệu của Máy ứng dụng  cho Java sử dụng JDO tiêu chuẩn hoặc API của BigTable mức thấp. appengine-api-sdk.1.2.0.jar: Để sử dụng các dịch vụ ứng dụng của Máy  ứng dụng cho Java chưa chuẩn như An ninh (Security) cho Máy ứng dụng cho Java. geronimo-*.jar: Để sử dụng các Java API tiêu chuẩn như API Quản lý  giao dịch Java (JTA- Java Transaction Management API) và JPA. jdo2-api-2.3-SNAPSHOT.jar: Để sử dụng API JDO.  Bạn sẽ học cách sử dụng các API về lưu giữ lâu bền từ Máy ứng dụng cho Java và một số dịch vụ ứng dụng của Máy ứng dụng cho Java bắt đầu trong Phần 2 của bài viết này.
  7. Cũng cần chú ý đến tệp cấu hình thùng chứa thời gian chạy cho Máy ứng dụng của Google, được gọi là appengine.xml. Trong ví dụ này, appengine.xml đang được sử dụng để đặt cấu hình tệp logging.properties để thực hiện đăng nhập với Máy ứng dụng cho Java. Trước tiên hãy xem xét một ứng dụng servlet của Máy ứng dụng cho Java Một khi bạn đã cấu hình tất cả mọi thứ trong trình thủ thuật tạo dự án, Máy ứng dụng cho Java đưa ra cho bạn khung sườn của một ứng dụng servlet kiểu Xin chào thế giới (Hello World). Hãy xem mã và sau đó xem cách để chạy ứng dụng này như thế nào khi sử dụng các công cụ Eclipse của Máy ứng dụng cho Java. Điểm vào chính của ứng dụng này là SimpleServletAppServlet, như chỉ ra trong Liệt kê 1: Liệt kê 1. SimpleServletAppServlet package gaej.example; import java.io.IOException; import javax.servlet.http.*; @SuppressWarnings("serial") public class SimpleServletAppServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain"); resp.getWriter().println("Hello, world");
  8. } } Servlet này được ánh xạ với URI /simpleservletapp trong web.xml, như được hiển thị trong Liệt kê 2: Liệt kê 2. web.xml simpleservletapp gaej.example.SimpleServletAppServlet simpleservletapp /simpleservletapp
  9. index.html Trình thủ thuật tạo dự án cũng cung cấp một tệp index.html có một đ ường liên kết đến servlet mới, như chỉ ra trong Liệt kê 3: Liệt kê 3. Trình thủ thuật tạo dự án tạo tệp index.html
  10. Hello App Engine Hello App Engine! Available Servlets: SimpleServletAppServlet
  11. Còn những gì khác làm việc với Máy ứng dụng cho Java? Google duy trì một danh sách các công cụ và các khung công tác làm việc tốt với Máy ứng dụng cho Java (xem Tài nguyên). Ví dụ, Máy ứng dụng cho Java hỗ trợ nhiều ngôn ngữ JVM, bao gồm cả BeanShell, Groovy, Scala, JRuby, Jython và Rhino. Vì Máy ứng dụng cho Java hỗ trợ khá nhiều các API Java SE và Java EE — như các Servlet, JSP, JPA, JavaMail và API của Java để xử lý XML (JAXP) — nhiều khung công tác hiện có sẵn sàng hoạt động ngay trong Máy ứng dụng cho Java. Ví dụ, bạn có thể sử dụng khung công tác Spring, mặc dù bạn sẽ cần một vài cách vòng tránh cho Spring ORM. Tapestry, wicket, DWR, Tiles, SiteMesh và Grails cũng làm việc được. Struts 2 làm việc với một miếng vá nhỏ. Một số các khung công tác không làm việc trong Máy ứng dụng cho Java là Hibernate và JDBC (không hỗ trợ cho các cơ sở dữ liệu quan hệ), JMX, Java WebServices, JAX-RPC hay JAX-WS, JCA, JNDI, JMS, EJB và Java RMI. Bây giờ bạn có một ứng dụng servlet đơn giản được xây dựng khi sử dụng chỉ một số các Java API. Và đó là điểm: Máy ứng dụng cho Java bao bọc chức năng Máy ứng dụng, sử dụng các Java API tiêu chuẩn, cho phép Máy ứng dụng hỗ trợ đông đảo các khung công tác sẵn có cho nền tảng Java. Triển khai ứng dụng Để chạy ứng dụng dựa trên servlet của bạn với các công cụ Eclipse của Máy ứng dụng cho Java, đầu tiên nhấn chuột phải vào dự án và chọn trình đơn Run As, sau đó chọn "Web Application" (Ứng dụng Web) có quả bóng màu xanh bên cạnh nó, như trong Hình 4:
  12. Hình 4. Chạy máy chủ phát triển của Máy ứng dụng cho Java Bây giờ bạn sẽ có thể chuyển hướng đến http://localhost:8080/simpleservletapp trong trình duyệt của bạn và xem ứng dụng đó với thông báo Xin chào thế giới. GWT so với các ứng dụng Java Web truyền thống Khi làm việc trong GWT, bạn biên dịch mã Java thành JavaScript và sau đó chạy GUI ứng dụng Web của bạn trong trình duyệt. Kết quả giống với một ứng dụng GUI truyền thống hơn là một ứng dụng Java Web truyền thống. GWT có một thành phần máy khách chạy trong trình duyệt. Thành phần máy khách này trao đổi với mã phía máy chủ Java của bạn thông qua một tập hợp các lớp Java kiểu RMI do bạn viết ra. Tạo một Máy ứng dụng cho ứng dụng Java/GWT Bạn đã có một ý tưởng về cách một ứng dụng servlet đơn giản của Máy ứng dụng cho Java làm việc như thế nào, vì vậy tiếp theo chúng ta hãy khám phá công cụ Eclipse của Máy ứng dụng cho Java dành cho ứng dụng GWT. Bắt đầu bằng cách nhấn vào quả bóng màu xanh trên thanh công cụ của Eclipse IDE để kích hoạt trình thủ thuật tạo dự án của Google. Lần này, đánh dấu chọn hỗ trợ cho GWT, như trong Hình 5:
  13. Hình 5. Tạo một ứng dụng GWT đơn giản với trình thủ thuật tạo dự án của Máy ứng dụng cho Java Như bạn thấy trong Hình 6, Máy ứng dụng cho Java cung cấp nhiều tạo phẩm mã cho một ứng dụng GWT hơn là cho một ứng dụng dựa trên servlet đơn giản. Ứng dụng ví dụ là một GUI được làm trong GWT để trao đổi với một ứng dụng dịch vụ lời chào.
  14. Hình 6. Các tạo phẩm mã được cung cấp cho một ứng dụng GWT Có thêm một JAR nữa cho ứng dụng GWT mà nó là không cần thiết cho một ứng dụng dựa trên servlet, cụ thể là gwt-servlet.jar. Các tạo phẩm khác như sau: src/gaej/example: SimpleGWTApp.gwt.xml: B ộ mô tả mô đun GWT.  src/gaej.example.server: GreetingServiceImpl.java: Triển khai thực hiện  dịch vụ lời chào. src/gaej.example.client: GreetingService.java: API đồng bộ cho dịch vụ lời  chào. src/gaej.example.client: GreetingServiceAsync.java: API không đồng bộ  cho dịch vụ lời chào. src/gaej.example.client: SimpleGWT App.java: Điểm vào chính và cũng để  xây dựng GUI của bộ khởi động. war/WEB-INF: web.xml: Triển khai bộ mô tả để cấu hình  GreetingServiceImpl. war: SimpleGWTApp.html: Trang HTML hiển thị GUI của GWT. 
  15. war: SimpleGWTApp.css: Bảng định kiểu cho GUI của GWT.  Trước khi đi sâu vào kiến trúc và mã nguồn của ứng dụng, hãy xem những gì sẽ xảy ra khi bạn chạy nó. Để chạy ứng dụng, nhấn vào hộp màu đỏ trên thanh công cụ của bạn, sau đó nhấn nút Compile (Biên dịch). Bây giờ nhấn chuột phải vào dự án và chọn mục trình đơn Run As—> Web Application như bạn đã làm trước đó. Lần này, vì bạn đang làm việc trên một ứng dụng GWT, một bàn giao tiếp trong chế độ lưu trú GWT (GWT Hosted Mode Console) và trình duyệt sẽ xuất hiện. Hãy tiếp tục và sử dụng ứng dụng Web để nhập tên của bạn và xem đáp ứng. Tôi đã nhận được đáp ứng như thấy trong Hình 7:
  16. Hình 7. Chạy ứng dụng GWT mẫu Trong các phần tiếp theo, tôi sẽ hướng dẫn bạn qua ứng dụng ví dụ GWT. Nếu bạn muốn biết thêm về GWT (hoặc học theo một hướng dẫn GWT), xem Tài nguyên. Bên trong ứng dụng GWT Dựa vào cấu hình được cung cấp, các công cụ GWT của Eclipse tạo ra một ứng dụng bộ khởi động trình bày một mặt tiền trang HTML (SimpleGWTApp.html, hiển thị trong Liệt kê 10) Nó nạp simplegwtapp.js và simplegwtapp.nocache.js.
  17. Đây là mã JavaScript được GWT tạo từ mã Java của bạn, cụ thể là mã đã có trong thư mục src thuộc gói gaej.example.client (xem các Liệt kê 6, 7 và 8). Điểm vào chính cho việc tạo GUI là gaej.example.client.SimpleGWTApp, hiển thị trong Liệt kê 8. Lớp này tạo các phần tử GUI của GWT và kết hợp chúng với các phần tử HTML DOM trên SimpleGWTApp.html (xem Liệt kê 10). SimpleGWTApp.html định nghĩa hai phần tử DOM có tên là nameFieldContainer và sendButtonContainer (các cột trong một bảng). Lớp SimpleGWTApp sử dụng RootPanel.get("nameFieldContainer") để truy cập ô kết hợp với các phần tử DOM đó và thay thế chúng bằng các phần tử GUI. Lớp SimpleGWTApp sau đó định nghĩa một hộp văn bản và một nút, mà bạn có thể sử dụng để nhập tên của một ai đó và gửi cho họ một lời chào (xem Liệt kê 10). GWT biết rằng lớp SimpleGWTApp là điểm vào chính cho ứng dụng vì SimpleGWTApp.gwt.xml chỉ rõ nó như vậy bằng phần tử điểm vào. SimpleGWTApp nối với nút, được gọi là sendButton, sao cho khi nó được nhấn SimpleGWTApp sẽ gọi phương thức greetServer trên GreetingService. Giao diện GreetingService được định nghĩa trong src/gaej.example.client.GreetingService.java ( Liệt kê 6). Vì Ajax vốn là không đồng bộ, nên GWT định nghĩa một giao diện không đồng bộ để truy cập các dịch vụ từ xa. SimpleGWTApp sử dụng giao diện không đồng bộ được được định nghĩa trong src/gaej.example.client.GreetingServiceAsync.java (Liệt kê 7). GreetingServiceImpl (src/gaej.example.server.GreetingServiceImpl.java) thực hiện phương thức greetServer được định nghĩa trong GreetingService (Liệt kê 5). Phương thức GreetingServiceImpl.greetServer trả về một chuỗi (String) mà SimpleGWTApp sử dụng chuỗi đó để hiển thị thông báo lời chào trong hộp thoại do nó tạo ra. Bộ mô tả mô đun GWT khai báo điểm vào chính cho ứng dụng GUI, cụ thể là gaej.example.client.SimpleGWTApp, như thấy trong Liệt kê 4: Liệt kê 4. Bộ mô tả mô đun GWT (src/gaej/example/SimpleGWTApp.gwt.xml)
  18. GreetingServiceImpl là triển khai thực hiện thực tế của ứng dụng dịch vụ lời chào, được hiển thị trong Liệt kê 5. Nó chạy trên phía máy chủ và mã máy khách gọi nó qua một lời gọi thủ tục từ xa. Liệt kê 5. Triển khai thực hiện các ứng dụng dịch vụ-lời chào (src/gaej.example.server.GreetingServiceImpl.java) package gaej.example.server; import gaej.example.client.GreetingService; import com.google.gwt.user.server.rpc.RemoteServiceServlet; /** * The server side implementation of the RPC service. */ @SuppressWarnings("serial") public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService { public String greetServer(String input) {
  19. String serverInfo = getServletContext().getServerInfo(); String userAgent = getThreadLocalRequest().getHeader("User-Agent"); return "Hello, " + input + "!I am running " + serverInfo + ".It looks like you are using:" + userAgent; } } GreetingService, hiển thị trong Liệt kê 6, là giao diện cho lời gọi thủ tục từ xa mà mã máy khách sử dụng: Liệt kê 6. API đồng bộ (src/gaej.example.client.GreetingService.java) package gaej.example.client; import com.google.gwt.user.client.rpc.RemoteService; import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; /** * The client side stub for the RPC service. */ @RemoteServiceRelativePath("greet")
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2