Tải bản đầy đủ (.pdf) (36 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (585.02 KB, 36 trang )

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

2. Nhấn Add phía bên phải để thêm một máy chủ run time mới. Cửa sổ New
Server Runtime, như trong hình 4, cho biết rằng WTP đã hỗ trợ một vài
máy chủ, bao gồm JBoss và Tomcat. Nhưng trời ơi, Geronimo lại không có
trong danh sách.
3. Nhấn đường liên kết Don't see your vendor listed? Click here để quan sát
xem máy chủ run time bổ sung nào đang có sẵn.

Hình 4. Các máy chủ run time sẵn có


4. Trong cửa sổ Install New Server, chọn bản Geronimo ưa dùng (hướng dẫn
này sử dụng bản 1.1), sau đó nhấn Next. Hãy nhớ số phiên bản này.
5. Chấp nhận thoả thuận giấy phép, nhấn Finish, rồi nhấn OK trong cửa sổ sẽ
xuất hiện.
6. Eclipse tải về môi trường runtime Geronimo và hỏi xem bạn có muốn khởi
động lại bàn làm việc không. Nhấn Yes.



Tải về Geronimo
Đến bây giờ, bạn đã kết hợp WTP Eclipse vào Eclipse và thêm hỗ trợ cho máy chủ
ứng dụng Geronimo. Nhiệm vụ tiếp theo là tải về chính máy chủ.
Để tải về máy chủ ứng dụng Geronimo, thực hiện các bước sau:
1. Chọn File > New > Other, sau đó chọn tùy chọn Server dưới mục Server.
2. Nhấn Next để xem lại cửa sổ Define a New Server. Lần này, khi bạn mở
mục Apache, bạn sẽ thấy các tùy chọn cho Geronimo.
3. Chọn phiên bản của Geronimo mà bạn đã cài đặt hỗ trợ cho nó, sau đó nhấn
Next.
4. Trong cửa sổ tiếp theo, gõ nhập một địa chỉ thư mục trong hộp Application
Server Installation Directory, và hãy chắc chắn rằng tùy chọn Geronimo
with Tomcat được đánh dấu.
5. Nhấn Download and Install, rồi nhấn OK.
6. Khi tải về kết thúc, nhấn Finish.
7. Kiểm tra máy chủ, mở Phối cảnh J2EE bằng cách chọn Window > Open
Perspective > Other và chọn J2EE. Như thấy trong Hình 5, một số phiếu
mới sẽ xuất hiện ở phần khung hình dưới của bàn làm việc.

Hình 5. Khởi động máy chủ Geronimo


8. Nhấn phiếu Servers, sau đó nhấn Run (được khoanh tròn màu xanh).
Quan sát khung hình Console để xem các mô đun Geronimo nào cũng như các mô
đun ứng dụng và ứng dụng web nào đang khởi động. Để nhìn thấy bàn quản trị
Geronimo chính, nhấn mục thanh công cụ mà trông giống như một quả địa cầu, và
gõ nhập http://localhost:8080/console trong trường address. Gõ nhập system làm
tên người sử dụng và manager là mật khẩu. Khung hình trình duyệt trông giống
như Hình 6.


Hình 6. Bàn quản trị Geronimo

Ghi chú: Nếu không nhìn thấy mục có hình quả địa cầu trên thanh công cụ, chọn
Window > Show View > Other, sau đó chọn tuỳ chọn Internal Web Browser
dưới mục General.
Bạn sẽ sử dụng bàn quản trị này trong các phần tiếp theo. Do đó tôi khuyên bạn
nên cứ để nó mở ra. Nếu bạn cần ngừng Geronimo, chỉ cần nhấn vào hình vuông
màu đỏ ở bên phải của nút Run khi trông thấy phiếu Servers.
Cài đặt nền cổng Web Liferay
Cổng Web Liferay đã phát triển được hơn sáu năm, nhưng việc hỗ trợ đầy đủ cho
Geronimo chỉ vừa mới được bổ sung. Xin kiểm tra lại trang web Liferay để tìm
các hướng dẫn cài đặt khác nhau xem chúng có bị lỗi thời không.
Để cài đặt cổng Web Liferay, thực hiện các bước sau:
1. Từ trang web Liferay (xem Tài nguyên), nhấn vào liên kết Downloads ở
trên đầu.
2. Cuộn xuống cho đến khi bạn trông thấy phần Application Server Plugins.
Sẽ có ít nhất hai liên kết để tải về các tệp tin lưu trữ cấu hình
(Configuration Archive - CAR):
o Tệp tin liferay-portal-geronimo-tomcat-a.b.c.car chứa mô đun
Liferay để gắn vào máy chủ Geronimo.
o Tệp tin liferay-portal-geronimo-derby-pool-a.b.c.car chứa các tệp
tin cần thiết để Liferay giao tiếp với mô đun cơ sở dữ liệu Derby gộp
trong bản cài đặt Geronimo.
3. Nhấn vào các liên kết này. Sau khi bạn đã tải về cả hai trình bổ sung, quay
trở lại bàn điều khiển ứng dụng Geronimo trong trình duyệt Web Eclipse.
4. Vì bạn đã tải về riêng lẻ các trình bổ sung này chứ không phải là truy cập
một kho chứa trình bổ sung, bạn sẽ cần sử dụng lệnh deploy của Geronimo
từ dòng lệnh. Tệp tin này (deploy.bat trong Microsoft® Windows® hoặc
deploy.sh trong UNIX® hoặc Linux®) nằm trong thư mục bin gốc của

Geronimo, do đó hãy bổ sung thư mục này vào biến môi trường PATH của
bạn.
5. Mở cửa sổ nhắc lệnh, chuyển đến thư mục chứa hai tệp tin CAR, và gõ
nhập các lệnh sau theo đúng thứ tự (nhớ rằng người sử dụng mặc định tên
là system, mật khẩu là manager):

deploy install-plugin liferay-portal-geronimo-derby-pool-a.b.c.car
deploy install-plugin liferay-portal-geronimo-tomcat-a.b.c.car

Đừng lo lắng nếu bạn nhận được một lỗi trong cài đặt lần thứ hai. Có thể nó
có nghĩa là trình bổ sung thứ hai đã được cài đặt đúng nhưng không khởi
động được.
6. Để xử lý vấn đề này, chuyển đến bàn quản trị Geronimo (Geronimo
Administration Console), nhấn vào liên kết Web App Wars dưới tiêu đề
Applications. Cửa sổ mới, hiển thị các ứng dụng Web của Geronimo, sẽ
nhìn tương tự như Hình 7.

Hình 7. Khởi động bàn điều khiển Liferay trong Geronimo


Bạn có thể nhìn thấy bối cảnh của từng ứng dụng trong cột URL. Ứng dụng
trên cao nhất sử dụng bối cảnh /remote-deploy và bàn điều khiển cho máy
chủ Tomcat sử dụng bối cảnh gốc, hay /.
7. Nhưng ứng dụng cuối cùng, cổng Web Liferay, cũng muốn bối cảnh gốc
này, nên phải gỡ bỏ cài đặt bàn điều khiển Tomcat bằng cách nhấn vào
Uninstall trong cùng một hàng với geronimo/welcome-tomcat/a.b.c/car.
Sau đó, khởi động cổng Web Liferay bằng cách nhấn Start.
Ghi chú: Không một tác vụ nào trong số này ảnh hưởng đến Geronimo
Console.
8. Có thể phải mất một ít thời gian, nhưng sau khi Geronimo khởi động ứng

dụng cổng Web Liferay, chuyển đến http://localhost:8080/ trong trình duyệt
Web Eclipse. Trang xuất hiện trông giống như trang chủ Liferay; để xem
cổng Web này, nhấn vào liên kết Sign in ở phía trên bên phải. Sau đó, trong
các hộp văn bản hiện ra, gõ nhập là tên người dùng của
bạn và test là mật khẩu của bạn. Nếu mọi việc tốt đẹp, bạn sẽ nhìn thấy
trang như Hình 8.

Hình 8. Cổng Web Liferay

Trước khi tiếp tục, hãy bớt chút thời gian để xem lướt qua cổng Web Liferay.
Khám phá các portlet và nhấn vào các liên kết và phiếu khác nhau. Tất cả các tính
năng này, từ đồng hồ cho đến lịch, đều có sẵn 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 bạn không thích gõ nhập từng dòng mã, bạn có thể lấy về cả dự án
Eclipse hoàn chỉnh (xem Tải về). Sau khi bạn tải về các tệp mã lệnh mẫu (code
samples), chọn File > Import, sau đó chọn tuỳ chọn Existing Projects into
Workspace dưới tiêu đề General.
Tạo tệp tin web.xml
Để tạo các tệp tin web.xml và geronimo-web.xml, thực hiện các bước sau:
1. Trong Eclipse, chọn File > New > Project.
2. Chọn Dynamic Web Project dưới tuỳ chọn Web.
3. Đặt tên dự án là simpleportlet, sau đó nhấn Finish. Khi bạn mở các thư
mục trong dự án, nó phải trông giống như Hình 9.

Hình 9. Cấu trúc ban đầu của dự án Portlet



Hai bộ mô tả triển khai quan trọng xuất hiện ở phía dưới cùng của dự án: web.xml
và geronimo-web.xml. Bộ mô tả triển khai đầu tiên mô tả thành phần web nói
chung, còn cái thứ hai báo cho Geronimo biết cách ứng dụng sẽ được đóng gói và
triển khai như thế nào. Trong dự án này, hãy sửa đổi web.xml sao cho nội dung
của nó khớp với nội dung hiển thị trong Listing 1. Điều này có nghĩa là loại bỏ
phần tử welcome-file-list và thêm các phần tử context-param, listener, servlet,
servlet-mapping, và taglib, chúng được in đậm trong mã nguồn.

Listing 1. Bộ mô tả triển khai web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="
xmlns:xsi=" />instance"
xsi:schemaLocation="

<display-name>simpleportlet</display-name>
<context-param>
<param-name>company_id</param-name>

<param-value>liferay.com</param-value>
</context-param>
<listener>
<listener-class>

com.liferay.portal.kernel.servlet.PortletContextListener

</listener-class>

</listener>
<servlet>
<servlet-name>simpleportlet</servlet-
name>
<servlet-class>

com.liferay.portal.kernel.servlet.PortletServlet
</servlet-class>
<init-param>
<param-name>portlet-class</param-name>

<param-
value>org.dworks.SimplePortlet</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>simpleportlet</servlet-
name>
<url-pattern>/simpleportlet/*</url-pattern>

</servlet-mapping>
</web-app>



Tạo tệp tin geronimo-web.xml
Bộ mô tả triển khai thứ hai cho hướng dẫn này, geronimo-web.xml, thực hiện hai
nhiệm vụ:
 Báo cho Geronimo biết địa điểm và cách lưu trữ ứng dụng trong kho chứa

của nó.
 Xác định rõ rằng ứng dụng portlet của bạn phụ thuộc vào mô đun cổng
Web Liferay.
Thêm văn bản in đậm trong Listing 2 vào tệp tin của bạn.

Listing 2. Bộ mô tả triển khai geronimo-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="
xmlns:nam=" />1.1"
xmlns:sec=" />1.1"
xmlns:sys=" />1.1">
<sys:environment>
<sys:moduleId>
<sys:groupId>default</sys:groupId>
<sys:artifactId>simpleportlet</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>car</sys:type>
</sys:moduleId>
<sys:dependencies>
<sys:dependency>
<sys:groupId>liferay</sys:groupId>
<sys:artifactId>liferay-portal-
tomcat</sys:artifactId>
</sys:dependency>
</sys:dependencies>
</sys:environment>
</web-app>


Phần tử <moduleId> chứa bốn phần tử con, xác định địa điểm mà mô đun được
triển khai của dự án sẽ được đặt trong kho chứa của Geronimo:
 groupId: Thực thể đã tạo ra tệp tin (chẳng hạn như Apache).
 artifactId: Tên của tệp tin.
 version: Phiên bản tệp tin.
 type: Định dạng của tệp tin (chẳng hạn như JAR).
Nhưng để khai báo các phần phụ thuộc của mô đun của ứng dụng, bộ mô tả chỉ
cần xác định các phần tử con groupId và artifactId của cổng Web Liferay. Để xem
các thông số này liên quan đến địa điểm tệp tin như thế nào, hãy mở thư mục kho
chứa dưới thư mục gốc 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 này phải được tích hợp 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 là ở chỗ chúng mô tả
các chế độ hoạt động nào có sẵn cho một portlet. JSR 168 đưa ra các chế độ cơ
bản là Xem, Biên tập, và Trợ giúp, nhưng bạn có thể tạo ra các chế độ tùy chỉnh
khi cần thiết. Chỉ có chế độ xem là cần phải có đối với một portlet; vì không có
các phần tử con <portlet-mode> nào bên dưới phần tử <supports> Listing 3, chế
độ Xem là chế độ duy nhất mà portlet đơn giản này hỗ trợ.









Listing 3. Bộ mô tả triển khai portlet.xml

<?xml version="1.0"?>
<portlet-app xmlns=" />app_1_0.xsd"
version="1.0"
xmlns:xsi="
xsi:schemaLocation=" />app_1_0.xsd

<portlet>
<portlet-name>simpleportlet</portlet-name>
<display-name>Simple Portlet</display-name>
<portlet-class>org.dworks.SimplePortlet</portlet-class>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>Simple Portlet</title>
<short-title>Simple Portlet</short-title>
<keywords>Simple Portlet</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>

<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>
</portlet-app>



Tạo tệp tin liferay-portlet.xml
Tạo một tệp tin nữa tên là liferay-portlet.xml trong thư mục WEB-INF, và thêm
nội dung như trong Listing 4. Tệp tin này khớp các vai trò an ninh của portlet.xml
với các vai trò cụ thể có tên tương tự trong Liferay. Nếu phần tử instanceable được
gán trị là true, portlet này có thể được thêm nhiều lần vào bố cục trình bày của
cổng Web Liferay.

Listing 4. Bộ mô tả triển khai liferay-portlet.xml

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-
//Liferay//DTD Portlet Application 4.2.0//EN"
" />app_4_2_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>simpleportlet</portlet-name>
<instanceable>true</instanceable>

</portlet>
<role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-mapper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<role-link>User</role-link>
</role-mapper>
</liferay-portlet-app>

×