| 使用 Sun JavaTM Studio Enterprise (Java Studio Enterprise) 的集成開(kāi)發(fā)環(huán)境 (IDE) 可以快速開(kāi)發(fā)應用程序。本教程向您介紹一個(gè) Portlet Builder 插件工具,它用于創(chuàng )建、測試和打包符合 Java 規范請求 (JSR) 168 Portlet 規范的 Portlet、JavaServer PagesTM (JSPTM) 以及提供程序。本教程假定您已經(jīng)熟悉了 Java Studio Enterprise 和 Sun JavaTM System Portal Server(門(mén)戶(hù)服務(wù)器)。 | 目錄 任務(wù)摘要 在典型的開(kāi)發(fā)方案中,您可以在 Portlet Builder 中開(kāi)發(fā) Portlet 和提供程序,在 Portlet Builder 的測試環(huán)境中對其進(jìn)行測試,在 Portlet Builder 中進(jìn)行打包,并使用《Sun Java System Portal Server 6 2005Q1 技術(shù)參考指南》(英文)中所述的門(mén)戶(hù)服務(wù)器命令行實(shí)用程序將包部署到門(mén)戶(hù)服務(wù)器實(shí)例中。 關(guān)于部署 Portlet 應用程序 Portlet 應用程序是一個(gè)帶有額外部署描述符 portlet.xml 的 Web 模塊,當該應用程序部署到符合 JSR 168 的 Web 容器時(shí),此描述符會(huì )將其標識為 Portlet Web 應用程序。Portlet 應用程序包含一個(gè)或多個(gè) Portlet 及其他資源。Portlet 的結構與 Web 模塊的結構相似。JSR 168 Portlet 規范是針對 Portlet 應用程序的說(shuō)明。 創(chuàng )建 Portlet 應用程序與構建 Web 模塊相類(lèi)似。部署描述符是自動(dòng)創(chuàng )建的,并且測試環(huán)境允許您在模擬的門(mén)戶(hù)服務(wù)器環(huán)境中測試您的程序。將 Portlet 應用程序打包可以生成標準的 .war 包。您可以使用相應的界面將這些包部署到任意的門(mén)戶(hù)服務(wù)器實(shí)例中。要使用門(mén)戶(hù)服務(wù)器進(jìn)行部署,請在命令行界面 (CLI) 執行 pdeploy。 Portlet Builder 不能通過(guò)與門(mén)戶(hù)服務(wù)器通訊來(lái)完成 Portlet 應用程序的部署或執行。要部署并測試 JSR 168 Portlet,必須將 Portlet 應用程序中的 Portlet 進(jìn)行打包。 返回頁(yè)首
關(guān)于 Portlet Builder 測試環(huán)境 Portlet Builder 測試環(huán)境,即仿真器,是一個(gè)不具有標識服務(wù)器或目錄服務(wù)器的輕量門(mén)戶(hù)服務(wù)器實(shí)例。測試環(huán)境會(huì )顯示一個(gè)簡(jiǎn)單的配置文件,其中具有一個(gè)呈現 Portlet 或提供程序的容器。測試環(huán)境還是一個(gè)需要部署到 Web 容器中的 Web 應用程序。 測試環(huán)境在一個(gè)與門(mén)戶(hù)桌面中的頻道類(lèi)似的頻道中模擬提供程序或 Portlet。并且可以在不同的 Portlet 模式(諸如“編輯”和“幫助”)之間進(jìn)行切換。測試環(huán)境包含頻道,并且顯示日志消息,您可以根據自己指定的配置更改來(lái)測試頻道。因為測試環(huán)境不提供驗證和授權功能,所以請將應用程序部署到活動(dòng)的門(mén)戶(hù)服務(wù)器實(shí)例后再進(jìn)行此類(lèi)配置操作。 當您從項目節點(diǎn)的上下文菜單中選擇“運行項目”選項時(shí),Portlet Builder 會(huì )同時(shí)將測試環(huán)境和 Portlet 應用程序部署到應用服務(wù)器中。隨后,Portlet Builder 會(huì )運行測試環(huán)境的主 JSP 頁(yè)(從 index.jsp 重定向的 PSSim.jsp)。 返回頁(yè)首
創(chuàng )建 Portlet 應用程序和提供程序應用程序 您必須創(chuàng )建 Portlet 應用程序來(lái)包含 Portlet,并創(chuàng )建提供程序應用程序來(lái)包含提供程序。 - 在 IDE 中,選擇“文件”>“新建項目”。
此時(shí)會(huì )打開(kāi)“新建項目”向導。 - 在“類(lèi)別”窗格中,選擇“Portal 體系結構”。
- 執行以下任一操作:
- 要創(chuàng )建 Portlet 應用程序,請在“項目”窗格中,選擇“Portlet 應用程序”。
- 要創(chuàng )建提供程序應用程序,請在“項目”窗格中,選擇“提供程序”。
- 單擊“下一步”。
- 在向導的“名稱(chēng)和位置”頁(yè)中命名項目,指定其文件的位置,同時(shí)接受所有其他缺省值。
- 單擊“完成”。
此時(shí)“項目”窗口中會(huì )包含與您的項目對應的新項目節點(diǎn)。 下一步:構建 Portlet 和提供程序 返回頁(yè)首
構建 Portlet 和提供程序 構建 Portlet Java Studio Enterprise 中包含 Portlet 模板。這些模板用來(lái)生成擴展接口的類(lèi)。除模板外,您還可以下載樣例 (portletsamples.zip),樣例中包含了一種在 Portlet 應用程序中使用 JSP 頁(yè)的方法,這為您使用 JSP 頁(yè)開(kāi)發(fā) Portlet 提供了很好的開(kāi)端。 IDE 中包含下列 Portlet 模板: | 模板 | 描述 | | 來(lái)自 GenericPortlet 的 Portlet | GenericPortlet 類(lèi)是 javax.portlet.GenericPortlet 類(lèi)的擴展。有關(guān)詳細信息,請參見(jiàn)《Sun Java System Portal Server 6 2005Q1 開(kāi)發(fā)者指南》(英文)。 | | 來(lái)自 PortletInterface 的 Portlet | Portlet 接口可以生成一個(gè)實(shí)現 javax.portlet.Portlet 接口的簡(jiǎn)單 Portlet 模板。Portlet 容器使用 Portlet 接口來(lái)調用 Portlet。所有 Portlet 都必須實(shí)現此接口,既可以直接實(shí)現,也可以使用已實(shí)現此 Portlet 接口的現有類(lèi)。 | | 帶有 JSP 的 Portlet | 生成一個(gè)擴展 javax.portlet.GenericPortlet 類(lèi)并使用 JSP 頁(yè)的簡(jiǎn)單 Portlet 模板。 | 使用 GenericPortlet 模板構建 HelloWorldPortlet Portlet 的步驟如下。 - 將 HelloWorldPortlet Portlet 添加到 Portlet 應用程序中:
- 在“項目”窗口中,右鍵單擊項目節點(diǎn),然后選擇“新建”>“來(lái)自 GenericPortlet 的 Portlet”。
此時(shí)會(huì )打開(kāi)“新建 Portlet”向導。 - 在“類(lèi)名稱(chēng)”字段中,鍵入新 Portlet 的名稱(chēng) HelloWorldPortlet。
- 單擊“完成”。結果如下:
- IDE 創(chuàng )建了兩個(gè)對象:HelloWorldPortlet.java 和 HelloWorldPortlet.portlet。
- .portlet 文件是此 Portlet 的主 portlet.xml 文件的一部分。
在 HelloWorld.java 中,進(jìn)行如下更改: - 在 doView() 方法中,將
response.getWriter().write("VIEW CONTENT\n"); 替換為 response.getWriter().write("Hello World\n"); - 在 doEdit() 方法中,將
response.getWriter().write("EDIT CONTENT\n"); 替換為 response.getWriter().write("Hello World Edit Content\n"); 保存您所做的更改。 下一步:在測試環(huán)境中模擬 Portlet 應用程序和提供程序應用程序 返回頁(yè)首
構建提供程序 Java Studio Enterprise 包含提供程序模板。這些模板用于生成擴展接口的類(lèi)。 可通過(guò) IDE 使用下列提供程序模板: 使用擴展 ProviderAdapter 模板構建 HelloWorldProvider 提供程序的步驟如下。 - 將 HelloWorldProvider 提供程序添加到提供程序應用程序中:
- 在“項目”窗口中,右鍵單擊項目節點(diǎn),然后選擇“新建”>“擴展 ProviderAdapter”。
此時(shí)會(huì )打開(kāi)“新建提供程序”向導。 - 在“類(lèi)名稱(chēng)”字段中,鍵入新提供程序的名稱(chēng) HelloWorldProvider。
- 單擊“完成”。
此時(shí) IDE 會(huì )創(chuàng )建三個(gè)對象:HelloWorldProvider.xml、HelloWorldProvider.properties 和 HelloWorldProvider.java。 在 HelloWorldProvider.java 中,進(jìn)行如下更改:編輯 HelloWorldProvider.java 中的 getContent() 和 getEdit() 方法: - 在 getContent() 方法中,將
StringBuffer sbContent = new StringBuffer(); 替換為 StringBuffer sbContent = new StringBuffer(); sbContent.append("Hello World\n");。 - 在 getEdit() 方法中,將
StringBuffer sbContent = new StringBuffer(); 替換為 StringBuffer sbContent = new StringBuffer(); sbContent.append("Hello World.It‘s Edit Mode\n"); 保存您所做的更改。 下一步:在測試環(huán)境中模擬 Portlet 應用程序和提供程序應用程序 返回頁(yè)首
在測試環(huán)境中模擬 Portlet 應用程序和提供程序應用程序 請執行下列步驟以模擬 Portlet 應用程序和提供程序應用程序。 - (對于 Portlet 應用程序是可選的)指定您要模擬的 Portlet:
- 在“項目”窗口中,右鍵單擊 Portlet 應用程序項目節點(diǎn),然后選擇“屬性”。
- 在“項目屬性”窗口的“類(lèi)別”窗格中,選擇“Portlet 集”,然后取消選中“使用所有 Portlet”復選框。
- 選擇要模擬的 Portlet。
- 單擊“確定”。
在“項目”窗口中,右鍵單擊項目節點(diǎn),然后選擇“運行項目”。此時(shí)會(huì )出現如下操作: - Web 瀏覽器會(huì )打開(kāi)一個(gè)包含了被模擬的 Portlet 的頁(yè)面。
- IDE 會(huì )將 Portlet 應用程序和測試環(huán)境部署到缺省的 Web 容器,即應用服務(wù)器中。
- 測試環(huán)境頁(yè)面會(huì )在 Java Studio Enterprise 缺省瀏覽器的 http://localhost:port/portlet/ 地址中顯示“運行”操作的結果。有關(guān)具體的端口信息,請參考“輸出”窗口。
下一步: 返回頁(yè)首
調試 Portlet Portlet Builder 不支持直接對某些節點(diǎn)進(jìn)行調試,但是,您可以使用 Web 應用程序調試工具對 Portlet 進(jìn)行調試,這是因為 Portlet 應用程序和測試環(huán)境都是 Web 應用程序。 - 要將 Web 應用程序部署到 Sun Java System Application Server,請確保在正常模式下至少運行過(guò)一次 Portlet 應用程序。
當您運行 Portlet 應用程序時(shí),Portlet 應用程序會(huì )執行 index.jsp。 - 使用“運行”菜單上的命令在 Portlet 代碼中設置斷點(diǎn)。
- 確保您的項目是主項目:
- 右鍵單擊項目節點(diǎn)。
- 選擇“設置主項目”。
在“運行”菜單中,選擇“調試主項目”開(kāi)始進(jìn)行調試。 下一步:在測試環(huán)境中模擬 Portlet 應用程序和提供程序應用程序 返回頁(yè)首
打包并部署 Portlet 應用程序和提供程序應用程序 請執行下列步驟來(lái)打包并部署 Portlet 應用程序和提供程序應用程序。 - (對于 Portlet 應用程序是可選的)指定您要打包的 Portlet:
- 在“項目”窗口中,右鍵單擊 Portlet 應用程序項目節點(diǎn),然后選擇“屬性”。
- 在“項目屬性”窗口的“類(lèi)別”窗格中,選擇“Portlet 集”,然后取消選擇“使用所有 Portlet”復選框。
- 選擇要打包的 Portlet。
- 單擊“確定”。
打包您的 Portlet: - 在“項目”窗口中,右鍵單擊 Portlet 應用程序項目節點(diǎn),然后選擇“打包”。
- 在“選擇 WAR 文件名”對話(huà)框中,定位到您要保存 .war 文件的位置,在“文件名”字段中鍵入該文件的名稱(chēng),然后單擊“確定”。
IDE 會(huì )創(chuàng )建一個(gè)符合 JSR 168 規范的 .war 文件。 打包您的提供程序: - 在“項目”窗口中,右鍵單擊提供程序應用程序項目節點(diǎn),然后選擇“打包”。
Web 瀏覽器會(huì )打開(kāi)一個(gè)包含了提供程序打包參數的頁(yè)面。 - 指定您要保存 .par 文件的路徑,然后選擇“創(chuàng )建文件”。
(可選)部署門(mén)戶(hù)組件: 返回頁(yè)首
另請參見(jiàn) |