使用 Sun JavaTM Studio Enterprise (Java Studio Enterprise) 的集成开发环境 (IDE) 可以快速开发应用程序。本教程向您介绍一个 Portlet Builder 插件工具,它用于创建、测试和打包符合 Java 规范请求 (JSR) 168 Portlet 规范的 Portlet、JavaServer PagesTM (JSPTM) 以及提供程序。本教程假定您已经熟悉了 Java Studio Enterprise 和 Sun JavaTM System Portal Server(门户服务器)。 |
目录
任务摘要
在典型的开发方案中,您可以在 Portlet Builder 中开发 Portlet 和提供程序,在 Portlet Builder 的测试环境中对其进行测试,在 Portlet Builder 中进行打包,并使用《Sun Java System Portal Server 6 2005Q1 技术参考指南》(英文)中所述的门户服务器命令行实用程序将包部署到门户服务器实例中。
关于部署 Portlet 应用程序
Portlet 应用程序是一个带有额外部署描述符 portlet.xml 的 Web 模块,当该应用程序部署到符合 JSR 168 的 Web 容器时,此描述符会将其标识为 Portlet Web 应用程序。Portlet 应用程序包含一个或多个 Portlet 及其他资源。Portlet 的结构与 Web 模块的结构相似。JSR 168 Portlet 规范是针对 Portlet 应用程序的说明。
创建 Portlet 应用程序与构建 Web 模块相类似。部署描述符是自动创建的,并且测试环境允许您在模拟的门户服务器环境中测试您的程序。将 Portlet 应用程序打包可以生成标准的 .war 包。您可以使用相应的界面将这些包部署到任意的门户服务器实例中。要使用门户服务器进行部署,请在命令行界面 (CLI) 执行 pdeploy。
Portlet Builder 不能通过与门户服务器通讯来完成 Portlet 应用程序的部署或执行。要部署并测试 JSR 168 Portlet,必须将 Portlet 应用程序中的 Portlet 进行打包。
返回页首
关于 Portlet Builder 测试环境
Portlet Builder 测试环境,即仿真器,是一个不具有标识服务器或目录服务器的轻量门户服务器实例。测试环境会显示一个简单的配置文件,其中具有一个呈现 Portlet 或提供程序的容器。测试环境还是一个需要部署到 Web 容器中的 Web 应用程序。
测试环境在一个与门户桌面中的频道类似的频道中模拟提供程序或 Portlet。并且可以在不同的 Portlet 模式(诸如“编辑”和“帮助”)之间进行切换。测试环境包含频道,并且显示日志消息,您可以根据自己指定的配置更改来测试频道。因为测试环境不提供验证和授权功能,所以请将应用程序部署到活动的门户服务器实例后再进行此类配置操作。
当您从项目节点的上下文菜单中选择“运行项目”选项时,Portlet Builder 会同时将测试环境和 Portlet 应用程序部署到应用服务器中。随后,Portlet Builder 会运行测试环境的主 JSP 页(从 index.jsp 重定向的 PSSim.jsp)。
返回页首
创建 Portlet 应用程序和提供程序应用程序
您必须创建 Portlet 应用程序来包含 Portlet,并创建提供程序应用程序来包含提供程序。
- 在 IDE 中,选择“文件”>“新建项目”。
此时会打开“新建项目”向导。
- 在“类别”窗格中,选择“Portal 体系结构”。
- 执行以下任一操作:
- 要创建 Portlet 应用程序,请在“项目”窗格中,选择“Portlet 应用程序”。
- 要创建提供程序应用程序,请在“项目”窗格中,选择“提供程序”。
- 单击“下一步”。
- 在向导的“名称和位置”页中命名项目,指定其文件的位置,同时接受所有其他缺省值。
- 单击“完成”。
此时“项目”窗口中会包含与您的项目对应的新项目节点。
下一步:构建 Portlet 和提供程序
返回页首
构建 Portlet 和提供程序
构建 Portlet
Java Studio Enterprise 中包含 Portlet 模板。这些模板用来生成扩展接口的类。除模板外,您还可以下载样例 (portletsamples.zip),样例中包含了一种在 Portlet 应用程序中使用 JSP 页的方法,这为您使用 JSP 页开发 Portlet 提供了很好的开端。
IDE 中包含下列 Portlet 模板:
模板 |
描述 |
来自 GenericPortlet 的 Portlet |
GenericPortlet 类是 javax.portlet.GenericPortlet 类的扩展。有关详细信息,请参见《Sun Java System Portal Server 6 2005Q1 开发者指南》(英文)。 |
来自 PortletInterface 的 Portlet |
Portlet 接口可以生成一个实现 javax.portlet.Portlet 接口的简单 Portlet 模板。Portlet 容器使用 Portlet 接口来调用 Portlet。所有 Portlet 都必须实现此接口,既可以直接实现,也可以使用已实现此 Portlet 接口的现有类。 |
带有 JSP 的 Portlet |
生成一个扩展 javax.portlet.GenericPortlet 类并使用 JSP 页的简单 Portlet 模板。 |
使用 GenericPortlet 模板构建 HelloWorldPortlet Portlet 的步骤如下。
- 将 HelloWorldPortlet Portlet 添加到 Portlet 应用程序中:
- 在“项目”窗口中,右键单击项目节点,然后选择“新建”>“来自 GenericPortlet 的 Portlet”。
此时会打开“新建 Portlet”向导。
- 在“类名称”字段中,键入新 Portlet 的名称 HelloWorldPortlet。
- 单击“完成”。结果如下:
- IDE 创建了两个对象:HelloWorldPortlet.java 和 HelloWorldPortlet.portlet。
- .portlet 文件是此 Portlet 的主 portlet.xml 文件的一部分。
- 在 HelloWorld.java 中,进行如下更改:
- 在 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");
- 保存您所做的更改。
下一步:在测试环境中模拟 Portlet 应用程序和提供程序应用程序
返回页首
构建提供程序
Java Studio Enterprise 包含提供程序模板。这些模板用于生成扩展接口的类。
可通过 IDE 使用下列提供程序模板:
使用扩展 ProviderAdapter 模板构建 HelloWorldProvider 提供程序的步骤如下。
- 将 HelloWorldProvider 提供程序添加到提供程序应用程序中:
- 在“项目”窗口中,右键单击项目节点,然后选择“新建”>“扩展 ProviderAdapter”。
此时会打开“新建提供程序”向导。
- 在“类名称”字段中,键入新提供程序的名称 HelloWorldProvider。
- 单击“完成”。
此时 IDE 会创建三个对象:HelloWorldProvider.xml、HelloWorldProvider.properties 和 HelloWorldProvider.java。
- 在 HelloWorldProvider.java 中,进行如下更改:编辑 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");
- 保存您所做的更改。
下一步:在测试环境中模拟 Portlet 应用程序和提供程序应用程序
返回页首
在测试环境中模拟 Portlet 应用程序和提供程序应用程序
请执行下列步骤以模拟 Portlet 应用程序和提供程序应用程序。
- (对于 Portlet 应用程序是可选的)指定您要模拟的 Portlet:
- 在“项目”窗口中,右键单击 Portlet 应用程序项目节点,然后选择“属性”。
- 在“项目属性”窗口的“类别”窗格中,选择“Portlet 集”,然后取消选中“使用所有 Portlet”复选框。
- 选择要模拟的 Portlet。
- 单击“确定”。
- 在“项目”窗口中,右键单击项目节点,然后选择“运行项目”。此时会出现如下操作:
- Web 浏览器会打开一个包含了被模拟的 Portlet 的页面。
- IDE 会将 Portlet 应用程序和测试环境部署到缺省的 Web 容器,即应用服务器中。
- 测试环境页面会在 Java Studio Enterprise 缺省浏览器的 http://localhost:port/portlet/ 地址中显示“运行”操作的结果。有关具体的端口信息,请参考“输出”窗口。
下一步:
返回页首
调试 Portlet
Portlet Builder 不支持直接对某些节点进行调试,但是,您可以使用 Web 应用程序调试工具对 Portlet 进行调试,这是因为 Portlet 应用程序和测试环境都是 Web 应用程序。
- 要将 Web 应用程序部署到 Sun Java System Application Server,请确保在正常模式下至少运行过一次 Portlet 应用程序。
当您运行 Portlet 应用程序时,Portlet 应用程序会执行 index.jsp。
- 使用“运行”菜单上的命令在 Portlet 代码中设置断点。
- 确保您的项目是主项目:
- 右键单击项目节点。
- 选择“设置主项目”。
- 在“运行”菜单中,选择“调试主项目”开始进行调试。
下一步:在测试环境中模拟 Portlet 应用程序和提供程序应用程序
返回页首
打包并部署 Portlet 应用程序和提供程序应用程序
请执行下列步骤来打包并部署 Portlet 应用程序和提供程序应用程序。
- (对于 Portlet 应用程序是可选的)指定您要打包的 Portlet:
- 在“项目”窗口中,右键单击 Portlet 应用程序项目节点,然后选择“属性”。
- 在“项目属性”窗口的“类别”窗格中,选择“Portlet 集”,然后取消选择“使用所有 Portlet”复选框。
- 选择要打包的 Portlet。
- 单击“确定”。
- 打包您的 Portlet:
- 在“项目”窗口中,右键单击 Portlet 应用程序项目节点,然后选择“打包”。
- 在“选择 WAR 文件名”对话框中,定位到您要保存 .war 文件的位置,在“文件名”字段中键入该文件的名称,然后单击“确定”。
IDE 会创建一个符合 JSR 168 规范的 .war 文件。
- 打包您的提供程序:
- 在“项目”窗口中,右键单击提供程序应用程序项目节点,然后选择“打包”。
Web 浏览器会打开一个包含了提供程序打包参数的页面。
- 指定您要保存 .par 文件的路径,然后选择“创建文件”。
- (可选)部署门户组件:
返回页首
另请参见
|