Xây dựng các portlet bằng Geronimo Apache và Eclipse potx

36 235 0
Xây dựng các portlet bằng Geronimo Apache và Eclipse potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Xây dựng các portlet bằng Geronimo Apache và Eclipse Quản lý cổng Web Liferay bằng nền các công cụ Web của Eclipse (WTP) Matthew Scarpino, Phát triển Java, Eclipse Engineering, LLC Tóm tắt: Các nhà phát triển Web có thể xây dựng các cổng Web (portal) đa chức năng bằng cách sắp xếp các thành phần hướng sự kiện, đơn giản và tái sử dụng được gọi là các portlet. Eclipse làm cho quá trình này thậm chí còn đơn giản hơn nữa. Trước hết, hãy tìm hiểu nền các công cụ Web của Eclipse (Eclipse Web Tools Platform - WTP) cung cấp một môi trường phát triển hoàn chỉnh để biên tập mã và các tệp tin cấu hình cần thiết cho các dự án portlet như thế nào. Sau đó, bằng việc tích hợp trình bổ sung Apache Geronimo Eclipse, hãy tìm hiểu cách mà bạn có thể triển khai và hiển thị những portlet này bên trong một cổng Web đầy đủ bằng cách truy cập máy chủ ứng dụng Geronimo. Trước khi bạn bắt đầu Về tài liệu hướng dẫn này Với các công cụ mã nguồn mở thích hợp, bạn có thể xây dựng nên một cổng Web có khả năng và đa chức năng như là địa chỉ mạng của một công ty lớn. Hướng dẫn này khảo sát một phương pháp tạo ra một cổng Web như vậy bằng cách sử dụng 3 công cụ:  Môi trường phát triển tích hợp (IDE) Eclipse để phát triển dự án.  Một máy chủ ứng dụng Apache Geronimo để triển khai nó.  Cổng Web Liferay để cung cấp cấu trúc tổng thể. Cần một số nỗ lực để cài đặt các thành phần này và khắc phục những sự không tương hợp về phiên bản. Nhưng sau khi lập cấu hình, quá trình xây dựng và triển khai cổng Web sẽ thông suốt. Mục tiêu Hướng dẫn này trình bày:  Tổ chức và đơn giản hoá phát triển cổng Web với WTP Eclipse.  Cơ cấu các portlet trong cổng Web Liferay.  Triển khai một ứng dụng portlet dựa servlet lên một máy chủ ứng dụng Geronimo.  Triển khai một ứng dụng portlet dựa trên Java™Server Pages (JSP) với một máy chủ ứng dụng Geronimo. Điều kiện tiên quyết Tài liệu hướng dẫn này viết cho các nhà phát triển Java bản doanh nghiệp mà có kỹ năng và kinh nghiệm từ trình độ mới bắt đầu cho đến trung cấp. Bạn cần có hiểu biết thông thường về công nghệ Java, các servlet, và các trang JSP cũng như phải biết qua Eclipse và cách nó quản lý các dự án. Yêu cầu về hệ thống Để bắt đầu hướng dẫn này, bạn cần một phiên bản Eclipse 3.2 gần đây hoặc mới hơn trên hệ thống của bạn. Bạn sẽ cài đặt WTP, máy chủ Geronimo, máy chủ runtime Geronimo và nền cổng Web Liferay khi học theo hướng dẫn này. Cổng Web, portlet, và Geronimo Tìm hiểu sự khác nhau giữa cổng Web và portlet, và khám phá vai trò của Geronimo Apache trong việc tạo ra chúng. Giới thiệu về cổng Web và portlet Java Specification Request (JSR) 168 định nghĩa cổng Web (portal) là “một ứng dụng Web mà thường cung cấp sự cá nhân hoá, đăng nhập một lần, gộp nội dung từ các nguồn khác nhau và chủ chứa tầng trình bày của các Hệ thống Thông tin”. Nó định nghĩa portlet là “một ứng dụng Web thành phần, do một thùng chứa portlet quản lý, xử lý các yêu cầu và tạo ra nội dung động”. Về mặt chức năng mà nói thì các portlet tạo ra các đoạn tài liệu đánh dấu (markup) khi phản hồi các yêu cầu, và các cổng Web quản lý các đoạn tài liệu này và cơ cấu chúng vào một khung làm việc. Các cơ quan lớn thường sử dụng các cổng Web để cung cấp cho người dùng nhiều khả năng sử dụng từ một trang duy nhất. Trong nhiều trường hợp, các cổng Web này cũng phục vụ như là các ứng dụng intranet để phục vụ truyền thông trong phạm vi toàn cơ quan. Việc phát triển các trang này sẽ không thể thực hiện được nổi với các servlet đơn khối, do đó các portlet được tạo ra như là các thành phần cắm chạy được, có thể thêm vào và sửa đổi một cách động. Nhờ tiêu chuẩn JSR 168 thông dụng, các nhà phát triển cổng Web có thể trộn vào và khớp nối với các portlet từ các nhà cung cấp khác nhau mà không cần thay đổi gì đáng kể. Vì vậy không cần phải viết lại các ứng dụng đăng ký, các trình tự động báo giá thị trường cổ phiếu (stock ticker), các trình tự động cập nhật tin (Really Simple Syndication - RSS) – chỉ đơn giản là tải về và triển khai, thế là xong. May mắn thay, sẵn có nhiều công cụ mã nguồn mở để phát triển cổng Web cho tất cả mọi người sử dụng. Dự án Apache Jetspeed, được phát hành theo giấy phép của Apache, cung cấp một số lớn các đặc tính bao gồm việc truy cập cơ sở dữ liệu, đảm bảo an ninh dựa trên vai trò (role-based), và hỗ trợ cho Ngôn ngữ Đánh dấu Không dây (WML). Apache Pluto là một thực thi chuẩn của JSR 168, có nghĩa là nó có thể quản lý và hiển thị các portlet theo tiêu chuẩn nhưng không cung cấp các đặc tính bổ sung mà các nhà phát triển từng mong chờ. Cổng Web JBoss cũng rất phổ biến và được phát hành theo giấy phép công cộng GNU nhỏ (Lesser GNU Public License -LGPL). Hướng dẫn này sử dụng các nền cổng Web Liferay để cơ cấu nên nội dung của nó. (Xem Liferay vs. Pluto ở cột bên để biết vì sao tôi chọn cổng Web này). Nền này được phát hành theo giấy phép của MIT, có nghĩa là bạn có thể sử dụng nó vào mục đích riêng mà không phải trả tiền bản quyền. Ngoài việc cung cấp một khung làm việc để hiển thị các portlet, nó còn tích hợp một số lớn các tính năng, bao gồm:  Xác định phiên bản và biên soạn phân tán dựa trên web (WebDAV).  Một Hệ thống Quản lý Nội dung hoàn chỉnh (CMS).  Sửa đổi danh bạ thông qua Giao thức Truy cập Danh bạ Gọn nhẹ (Lightweight Directory Access Protocol - LDAP).  Dịch thuật ngôn ngữ.  Hỗ trợ cho nhiều máy chủ ứng dụng khác nhau, gồm cả Geronimo.  Nhiều portlet mẫu miễn phí, gồm cả các dịch vụ chat (chat clients), lịch, đồng hồ, và các cung cấp RSS (RSS feeds). Liferay so với Pluto Pluto được gộp trong Geronimo và do quỹ phần mềm Apache (Apache Software Foundation) phát hành, vì vậy tôi thấy cần phải giải thích lý do tại sao tôi lại chọn Liferay làm cơ cấu khung cổng Web cho hướng dẫn này. Nó làm cho việc triển khai được dễ dàng. Liferay cung cấp một ứng dụng Web chạy được ngay trong Geronimo. Nhưng các tạo phẩm của Pluto trong kho chứa Geronimo không được đóng gói như là một ứng dụng web và không được kích hoạt khi Geronimo khởi động. Cho nên phải mất nhiều công sức để lập cấu hình một ứng dụng Pluto dành cho Geronimo và tích hợp nó vào trong thùng chứa Tomcat Apache. Tuy nhiên, theo tư liệu trên trang mạng Pluto, Maven là ứng dụng được ưa thích để truy cập Pluto. Maven cung cấp nhiều ích lợi cho việc quản lý dự án lớn, nhưng theo như kinh nghiệm đau xót của tôi, trình bổ sung Maven không làm việc tốt với Eclipse và WTP. Trang mạng Pluto cũng nhấn mạnh (bằng các chữ màu đỏ sáng!) rằng “để tự động hoá việc triển khai/cài đặt các portlet, bạn phải sử dụng bản mã nguồn của Pluto”. Điều này hẳn có nghĩa là phải tạo lập và sửa đổi một dự án Eclipse với tất cả mã nguồn Pluto và các thư viện phụ thuộc. Với Liferay, bạn không bao giờ phải động đến mã nguồn để triển khai các portlet. Cuối cùng là, Liferay cung cấp nhiều portlet và các chức năng miễn phí có sẵn đến nỗi tôi cảm thấy phải nhắc đến nó thậm chí nếu tôi muốn chọn Pluto như làm thùng chứa portlet. Và không chỉ tư liệu của Liferay là hơn nhiều so với của Pluto, mà nó thậm chí còn cung cấp các hướng dẫn bằng video về cách thực hiện các nhiệm vụ thông thường. Đến nay, tôi rất có ấn tượng với Liferay — thực sự, điều tôi than phiền duy nhất là nó cung cấp quá nhiều tính năng. Ngoài ra, Liferay chứa một cơ cấu khung làm việc quy mô lớn để triển khai các ứng dụng Intranet tại các điểm phân tán. Theo cách này, các nhà quản trị trong các cơ quan lớn có thể tuỳ biến cổng Web cho từng chi nhánh, từng địa điểm và từng nhóm người trong cơ quan của mình. Máy chủ ứng dụng Geronimo Trong hướng dẫn này, bạn triển khai cổng Web mẫu và ứng dụng portlet vào một máy chủ ứng dụng Geronimo. (Geronimo được phát hành theo Giấy phép Apache của Quỹ phần mềm Apache [ASP].) Máy chủ ứng dụng Geronimo là máy chủ ứng dụng được chứng nhận hoàn toàn hợp chuẩn nền Java 2, bản Doanh nghiệp 1.4 (J2EE), Enterprise Edition, và tuy còn trẻ, nó vẫn đứng ngang hàng với các sản phẩm thương mại về các đặc tính, độ tin cậy và hiệu năng hoạt động. Máy chủ Ứng dụng WebSphere® của IBM® Bản Cộng đồng, là dựa trên Geronimo. Geronimo có cấu trúc như một bộ mô đun các đối tượng quản lý gọi là Geronimo Beans (GBeans). Mỗi thành phần được gói trong một GBean và trưng bày vòng đời của mình để cho các thành phần khác tương tác đến. Một số thành phần quan trọng nhất trong Geronimo gồm:  Trình Môi giới Thông điệp ActiveMQ (ActiveMQ Message Broker).  Thùng chứa OpenEJB Enterprise JavaBeans (EJB).  Thùng chứa Tomcat hay Jetty Web.  Dịch vụ Phân giải tên dựa trên gọi Phương thức Từ xa (RMI-based).  Hệ Quản trị Cơ sở dữ liệu Quan hệ (RDBMS) Derby Apache. Geronimo có thể sử dụng hoặc thùng chứa Tomcat hoặc Jetty Web để triển khai các ứng dụng của nó, nhưng hướng dẫn này dựa trên Geronimo với cài đặt Tomcat. Nếu bạn đã sử dụng Tomcat chạy độc lập, phần lớn hoạt động mô tả ở đây sẽ thấy quen thuộc. Tuy nhiên, bạn không thể truy cập Tomcat trực tiếp. Thay vào đó, bạn cần triển khai các ứng dụng của mình bằng cách sử dụng một trong ba phương thức triển khai Geronimo sau:  Công cụ dòng lệnh deploy.  Bàn điều khiển Web Geronimo.  Bộ triển khai nóng . Tuỳ chọn cuối cùng này đòi hỏi việc gửi ứng dụng Web đến thư mục $(GERONIMO)/deploy, nơi mà Geronimo sẽ phát hiện ra nó. Trong hướng dẫn này, Eclipse sẽ tự động thực hiện việc triển khai nóng. Trong khi triển khai, Geronimo tạo ra một phần tử mới trong kho của nó dành cho ứng dụng. Yếu tố này gọi là một tạo phẩm (artifact), được xác định bởi một cấu trúc thư mục đặc biệt. Bất kỳ ứng dụng nào mà phụ thuộc vào nó phải biết đến cấu trúc này. Ở đây, ứng dụng portlet mẫu phụ thuộc vào một tạo phẩm của Liferay, và tôi sẽ chỉ cho bạn thấy cách thông báo cho Geronimo về sự phụ thuộc này. Nhưng trước tiên bạn cần phải biết cách lấy về và lập cấu hình phần mềm đối với hướng dẫn này. Tạo môi trường Eclipse Viết mã các ứng dụng portlet không phải là điều khó. Khó là ở chỗ lấy về và cài đặt tất cả các phần mềm mà bạn cần sao cho bạn có thể viết mã các portlet trong Eclipse và triển khai chúng với Geronimo. Các thành phần phần mềm cần thiết Bạn cần có bốn thành phần chính sau đây:  WTP 1.5.1: Đặc tính này cho phép bạn tạo ra và biên tập các dự án Eclipse cho các ứng dụng web động. Nó cũng cung cấp việc triển khai trực tiếp các ứng dụng này bằng cách sử dụng các máy chủ ứng dụng hoặc máy chủ Web.  Geronimo Server Runtime: Trình bổ sung Eclipse này cho phép đặc tính WTP truy cập được vào một máy chủ Geronimo và sử dụng nó để triển khai các ứng dụng.  Geronimo application server: Máy chủ Geronimo triển khai các ứng dụng portlet trong cổng Web Liferay.  Liferay portal: Ứng dụng Web Liferay cung cấp khung cấu trúc để chủ chứa và hiển thị các portlet của bạn. Cài đặt nền công cụ Web (WTP - Web Tools Platform) Eclipse WTP có hai vai trò quan trọng trong hướng dẫn nàyl:  Nó cung cấp một phương tiện đơn giản để tổ chức các dự án ứng dụng Web và xuất ra thành các tệp tin WAR.  Với đặc tính bổ sung thích hợp, nó đóng vai trò là bàn điều khiển để khởi động, dừng, và giao tiếp với máy chủ Geronimo. Nói đơn giản, WTP cho phép đi từ mã nguồn đến triển khai ứng dụng thông qua con trỏ và nhấn chuột. Để cài đặt WTP, hãy thực hiện các bước sau: 1. Mở Eclipse và nhấn Help > Software Updates. 2. Chọn Find and Install sau đó đánh dấu tùy chọn Search for New Features to Install. 3. Nhấn Next. Cửa sổ hiển thị trong Hình 1 xuất hiện. Hình 1. Chọn trang web cập nhật 4. Đánh dấu chọn hộp Callisto Discovery Site sau đó nhấn Finish. Ghi chú: Callisto Discovery Site đóng gói lại các dự án chứa nhiều đặc tính như WTP và đảm bảo tính tương thích về phiên bản giữa chúng. 5. Nhấn OK khi danh sách các site nhân bản xuất hiện. Trang web như trong Hình 2 xuất hiện. Hình 2. Lựa chọn các đặc tính WTP 6. Đánh dấu chọn hộp Web and J2EE Development. Điều này báo cho bộ quản lý tải về các đặc tính tương ứng với Eclipse WTP. Bạn sẽ trông thấy một cảnh báo nói rằng các đặc tính này đòi hỏi phải có các đặc tính bổ sung để hoạt động được. Để chắc chắn rằng bạn có tất cả các phần phụ thuộc cần thiết, thí dụ như bộ biên tập trực quan (Visual Editor), khung làm việc biên tập đồ họa (Graphical Editor Framework - GEF), và khung làm việc mô hình hóa Eclipse (Eclipse Modeling Framework - EMF), nhấn Select Required. Khi cảnh báo biến mất, nhấn Next và chấp nhận thỏa thuận cấp phép này. 7. Nhấn Next, rồi nhấn Finish. Ghi chú: Nếu bạn tiếp tục trông thấy một cảnh báo phụ thuộc, thậm chí sau khi đã nhấn Select Required, có thể bạn cần một phiên bản mới hơn hoặc bản ổn định hơn của Eclipse. 8. Chọn để cài đặt tất cả các đặc tính, và khởi động lại Eclipse. Để kiểm tra lại xem các đặc tính đã được thêm vào chưa, chuyển đến Help > About Eclipse SDK, và nhấn Feature Details. Cài đặt Máy chủ ứng dụng Geronimo Do đã cài đặt WTP, bạn sẽ thấy nhiều chủng loại (category) dự án Eclipse mới, bao gồm các dự án EJB, dự án J2EE, và dự án Web. Dưới mục Web category, bạn có thể tạo ra các dự án Web động và dự án Web tĩnh. Dự án portlet trong hướng dẫn này là một dự án Web động, nhưng để triển khai dự án này bằng Geronimo, bạn phải có được máy chủ runtime Geronimo. Thêm hỗ trợ WTP cho máy chủ ứng dụng Geronimo Để bổ sung hỗ trợ WTP cho máy chủ ứng dụng Geronimo của bạn, hãy thực hiện các bước sau: 1. Chọn Window > Preferences, mở mục Server, sau đó chọn Installed Runtimes. Trang ưa thích sẽ trông tương tự như phần trên đầu của Hình 3. Hình 3. Thêm một máy chủ run time vào Eclipse [...]... miễn phí khi bạn bắt đầu tạo các ứng dụng của riêng bạn Các bộ mô tả triển khai Do bạn đã triển khai cổng Web Liferay bằng Geronimo, bạn đã sẵn sàng thêm vào các portlet Ví dụ này cho thấy cách tạo ra một portlet đơn giản mà hiển thị tất cả các thuộc tính sẵn có của nó Nó bắt đầu bằng việc cài đặt Eclipse và các bộ mô tả triển khai và kết thúc với việc thêm vào các servlet và ứng dụng JSP Ghi chú: Nếu... triển khai các ứng dụng portlet JSR 168 cơ bản bằng Eclipse, Geronimo, và nền cổng Web Liferay Thảo luận cơ bản này đề cập đến cách lấy về các thành phần cần thiết nói trên và kết hợp chúng bên trong các dự án Eclipse Cụ thể, bạn đã tìm hiểu về hai dự án portlet cơ bản: một dự án sử dụng servlet để sinh ra các thẻ đánh dấu và một dự án sử dụng trang JSP Tôi hy vọng rằng bạn sẽ có thể xây dựng được những... đối tượng portletConfig nhưng nó vẫn triển khai và hiển thị đúng Listing 9 View.jsp Portlet Name: Company Name: Các thẻ defineObjects làm cho các đối tượng renderRequest, renderResponse, và portletConfig... kiện và phân tán dữ liệu phiên làm việc Một mục tiêu khác là là tiêu chuẩn hoá việc biểu hiện (rendering) không đồng bộ của các portlet, bằng cách đó cung cấp cho các nhà phát triển một phương tiện chung để tạo ra các cổng Web dựa XML (Ajax) JavaScript không đồng bộ Với việc tích hợp chặt chẽ như vậy của các portlet động, hẳn là có thể xây dựng một ứng dụng Web giống như Eclipse dựa trên các portlet. .. vào cổng Web Liferay, bạn cần hai tệp tin nữa: liferay -portlet. xml và liferay-display.xml Tạo tệp tin portlet. xml Tạo một tệp tin có tên là portlet. xml trong thư mục WEB-INF của dự án, và thêm nội dung trong Listing 3 vào nó Các phần tử ở đây có cùng tên gọi và các chức năng như những phần tử tương ứng của các servlet trong web.xml, do đó trông quen thuộc Một điều khác biệt thú vị về các bộ mô tả portlet. .. triển khai portlet. xml simpleportlet< /portlet- name> Simple Portlet... đã xử lý xong vấn đề giao diện giữa máy chủ và cổng Web Tiếp theo, bạn viết mã các hoạt động thực tế của portlet này Xây dựng và triển khai portlet dựa trên servlet Tạo lớp SimplePortlet và triển khai ứng dụng lên máy chủ ứng dụng Geronimo Lớp mẹ GenericPortlet Trước khi bạn xem xét mã của lớp SimplePortlet, tôi muốn đề cập ngắn gọn về lớp mẹ của nó, GenericPortlet Hai phương thức hoạt động chính của... tượng portletConfig cung cấp việc truy cập vào tên của portlet và đối tượng bối cảnh Các thẻ sẵn có khác bao gồm thẻ actionURL, báo cho portlet thực hiện một hành động, và thẻ renderURL, gửi tới portlet một yêu cầu biểu hiện (render request) Thẻ namespace cho phép đưa ra ngoài một phần của mã nguồn để chỉ sử dụng các mã định danh kết hợp với portlet óm tắt Hướng dẫn này tập trung vào việc viết mã và. .. SimplePortlet chỉ gồm có phương thức doView() Eclipse WTP thêm nhiều thư viện vào CLASSPATH của dự án của bạn, nhưng không một thư viện nào trong số đó chứa các lớp portlet May thay, Geronimo bao gồm thư viện cần thiết (portlet- api-1.0.jar, như vào thời điểm viết bài này) trong thư mục $ (GERONIMO) /repository /portlet- api /portlet- api/1.0) Bạn có thể dán tệp tin này vào dự án Eclipse, tạo ra một biến CLASSPATH trỏ... của Geronimo Mỗi thư mục kho chứa thứ cấp lấy tên chính là groupId, của mô-đun, và mỗi tệp tin mô đun có thể tìm thấy trong thư mục $ (GERONIMO) /repository/groupId/artifactId/version Tạo các bộ mô tả portlet Các tệp tin web.xml và geronimo- web.xml là đủ để triển khai một servlet hoặc ứng dụng dựa-JSP, nhưng bạn cần một bộ mô tả triển khai thứ ba, portlet. xml, cho các ứng dụng portlet Sau đó, vì portlet . Xây dựng các portlet bằng Geronimo Apache và Eclipse Quản lý cổng Web Liferay bằng nền các công cụ Web của Eclipse (WTP) Matthew Scarpino, Phát triển Java, Eclipse Engineering,. Tóm tắt: Các nhà phát triển Web có thể xây dựng các cổng Web (portal) đa chức năng bằng cách sắp xếp các thành phần hướng sự kiện, đơn giản và tái sử dụng được gọi là các portlet. Eclipse làm. mà nói thì các portlet tạo ra các đoạn tài liệu đánh dấu (markup) khi phản hồi các yêu cầu, và các cổng Web quản lý các đoạn tài liệu này và cơ cấu chúng vào một khung làm việc. Các cơ quan

Ngày đăng: 07/08/2014, 10:22

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan