Struts
是一个流行的开放源代码开发框架,它提供了一种便利的方式,可以用于将模块化的应用程序清楚地分解成逻辑、表示和数据。IBM
WebSphere Portal 包含内置的 Struts Portlet Framework,使得 Struts
能够继续普及到门户应用程序。本文将展示可以如何使用 Struts Portlet Framework 来迁移现有的
Struts 应用程序并将其部署到部署到 WebSphere Portal 中。
Struts
是一个流行的开放源代码开发框架,它提供了一种便利的方式,可以用于将模块化的应用程序清楚地分解成逻辑、表示和数据。IBM
WebSphere Portal 包含内置的 Struts Portlet Framework,使得 Struts
能够继续普及到门户应用程序。本文将展示可以如何使用 Struts Portlet Framework 来迁移现有的
Struts 应用程序并将其部署到部署到 WebSphere Portal 中。
Struts是模型-视图-控制器(Model-View-Controller,MVC)框架最著名的开放源代码体现之一,它提供了一种便利的方式,可以用于将模块化的应用程序清楚地分成逻辑、表示和数据。JavaServer
Pages(JSP)在 MVC 框架中通常是作为视图(View),它根据业务逻辑和数据生成动态用户界面(UI)。Struts非常流行,因为它能够帮助开发人员有效地设计
Web应用程序。
IBM? WebSphere? Portal 包含内置的 Struts
Portlet Framework,使Struts 能够继续普及到门户应用程序。可以通过使用 Struts
Portlet Framework 来迁移现有的 Struts 应用程序并将其部署到 WebSpherePortal
上。
IBM WebSphere Studio Application Developer(以下简称为
ApplicationDeveloper)有内置的工具和运行时支持,可以用于开发 Struts应用程序并对其进行单元测试。通过
ApplicationDeveloper 中的 WebSphere Portal Toolkit,也可以使用
WebSphereStudio 来开发门户应用程序并对其进行单元测试。
本文将描述如何使用 WebSphereStudio 来将现有的 Struts应用程序迁移到门户应用程序。本文假设您具备
Struts和 WebSphere Studio 中的 Struts工具的基础知识。(要了解关于本主题的基本信息,请参阅
用WebSphere Studio V5 编写一个简单的 Struts 应用程序。)
在本文中创建的门户应用程序是针对 WebSphere PortalV5。因此,需要如下软件来完成本示例:
- WebSphere Studio Application Developer
Version 5.01
- WebSphere Portal Toolkit Version
5 安装有 WebSphere Portal V5 Unit Test Environment。
下面概括了安装您所需软件的步骤的顺序:
- 安装 WebSphere Studio Application
Developer V5。
-
安装 WebSphere Studio Application Developer 5.01 PTF。
- 将 WebSphere Application Server 5.01
PTF 安装到 WebSphere Test Environment(要了解更多细节,请参考
WPS_CDSets\cd0\PortalToolkit\InstallGuide\was_ptf1.htm
)。
- 安装 WebSphere Application Server
5 Interim fixes(要了解更多细节,请参考
WPS_CDSets\cd0\PortalToolkit\InstallGuide\was_ptf1.htm
)。
- 安装 WebSphere Portal Toolkit V5。在安装的过程中,请确保选择了
WebSphere Portal V5 单元测试环境。系统将提示您使用 WebSphere Portal
V5 CD 或安装文件夹,所以请确保您手边有 CD 或者在安装前下载 CD 的镜像。
我们从
下载一个已创建好的样本 Struts项目开始。如果您想要了解有关使用 WebSphere Studio
V5创建简单的 Struts 应用程序的细节,请参考文章
用 WebSphere Studio V5 编写一个简单的Struts 应用程序,该文章同样适用于
WebSphere Studio V5.01。它们之间的区别在于WebSphere Studio V5
支持 Struts 1.1 Beta 2,而 WebSphere Studio V5.01支持 Struts
1.1 Beta 3;在您计划迁移到门户应用程序的 StrutsWeb 项目中,您将需要使用 Struts
1.1 Beta 3 框架。
下载本文包含的 SimpleStruts.ear
,然后遵循如下步骤以测试该 SimpleStruts项目:
- 将
SimpleStruts.ear
导入 Application Developer 工作区。您将创建两个项目: SimpleStruts
和 SimpleStrutsWeb 。
- 创建 WebSphere Test Environment V5
服务器实例和配置。
- 将
SimpleStruts
应用程序添加到服务器配置中。
- 启动服务器。
- 右键单击 SimpleStrutsWeb\Web Content目录下面的
submitpage.jsp并在上下文菜单中选择 Run on Server。
图 1. 一个简单的 Struts 应用程序
- 提交带有一些信息的表单以查看结果。
- 测试过后,关闭服务器。
- 使用
Portlet Struts Framework 替换 Apache Struts Framework;WebSphere
Portal 为 Portal 环境重新编写了 Apache Struts Framework 的实现,因此您需要使用如下所示的相关
JAR 文件和 TLD 文件:
- 将
WSAD_InstallDir\runtimes\portal_v50\dev\struts\StrutsPortlet\PortalStrutsBlank.war
导入到工作空间。使用 PortletStrutsBlank
作为此 Web 项目的名称并创建一个新的 Enterprise Application 项目来包括该
Web 项目。
- 将
PortletStrutsBlank\Web
Content\WEB-INF\lib 中的所有 JAR 文件复制到 SimpleStrutsWeb\Web
Content\WEB-INF\lib 。
- 将
PortletStrutsBlank\Web
Content\WEB-INF\tld 中的所有 TLD 文件复制到 SimpleStrutsWeb\Web
Content\WEB-INF 。
- 将
portlet.tld
导入到 SimpleStrutsWeb\Web
Content\WEB-INF\ 。可以在 WSAD_InstallDir\runtimes\portal_v50\shared\app\WEB-INF\tld
中找到此标记库文件。
- 修改
Web 部署描述符:
- 打开
SimpleStrutsWeb\Web
Content\WEB-INF 下面的 web.xml
。
- 单击 Servlets选项卡,然后将 Servlet
的名称从 action更改为 Struts。
- 将
Struts的 Servlet 类更改为 com.ibm.wps.portlets.struts.WpsStrutsPortlet。因为编辑器不认为
WpsStrutsPortlet 是一个 Servlet,所以您可能难以从编辑器的 Servlets选项卡更改类的名称。因此,您需要切换到编辑器的
Source选项卡并如下更改类名:
<servlet-name>Struts</servlet-name>
<servlet-class>com.ibm.wps.portlets.struts.WpsStrutsPortlet</servlet-class>
- 将 Struts Servlet 的 URL 映射从
/*.do
更改为 /Struts/* 。
- 确保初始化参数
config 指向 Struts 配置文件,然后添加一个新的名为 struts-servlet-mapping
的初始化参数:
参数名称 |
参数值 |
config |
/WEB-INF/struts-config.xml
|
struts-servlet-mapping |
*.do
|
- 单击 Pages选项卡,删除 Welcome
Pages列表中所有的项,然后将
submitpage.jsp
添加到 Welcome Pages 列表。
- 保存此 Web 部署描述符。
- 修改
Struts 配置文件:将下列元素添加到
SimpleStrutsWeb\Web
Content\WEB-INF 下的 struts-config.xml
中的 <struts-config>
元素:
<controller
processorClass="com.ibm.wps.portlets.struts.WpsRequestProcessor">
</controller>
- 创建
Portlet 部署描述符:
- 将
portlet.xml
从 PortalStrutsBlank\Web
Content\WEB-INF 复制到
SimpleStrutsWeb\Web Content\WEB-INF 。
- 在编辑器中打开
portlet.xml
。
- 从 Portlet Application项,将
Display name 更改为
Pizza Order
Application ,然后将 UID 域更改为
PizzaOrderApplicaton:1 ,如图 2 所示。您需要确保 UID
在部署到 WebSphere Portal 的所有门户应用程序中是惟一的。
图 2. 修改 portlet.xml
- 从 Portlet Application下的
Portlet_1项,将 Portlet 的 Display name 更改为
Pizza Order Portlet
。单击 Browse按钮,然后从弹出窗口中选择 Struts作为
Portlet 的实现,如图 3 所示。
图 3. 修改 portlet.xml
- 从编辑器中选择 Concrete Portlet
Application项。将 Display name 更改为
Pizza
Order Application 并将 UID 更改为 PizzaOrderApplication:1.1
,如图 4 所示。
图 4. 修改 portlet.xml
- 选择 Concrete Portlet Application下的
Portlet_1项,然后将 Display name 更改为
Pizza
Order Portlet 。将标题(Title)、短标题(Short title)和描述(Description)的值更改为
Order a Pizza 。
- 保存此 Portlet 部署描述符。
- 修改
JSP 中的 HTML 标记:Portlet 不能包含一般的 HTML 标记,因此您需要对应用程序中的所有
JSP 作出如下更改:
- 删除
<!DOCTYPE>
标记。
- 添加一个新的标记库:
<%@
taglib uri="/WEB-INF/struts-portal-html.tld"
prefix="portalhtml" %>
- 将
<HEAD>
标记更改为 <portalhtml:head>
。
- 将
<BODY>
标记更改为 <portalhtml:body>
。
- 测试此
Portal 应用程序:
- 创建 WebSphere Portal V5 Test
Environment 服务器实例和配置。
- 将企业项目 SimpleStruts添加到服务器配置中。
- 启动服务器。
- 右键单击项目 SimpleStrutsWeb并从上下文菜单中选择
Run on the server...。
- 此门户应用程序的首页将如图 5 所示。
图 5. 在迁移后测试门户应用程序
- 提交带有一些信息的表单以查看结果。(您可以从本文的 下载部分获得此应用程序的一个迁移后的副本
SimpleStrutsPortal.ear
。)
现在,由于 WebSphereStudio中包含了流线型的过程,所以通过遵循本文所提供的一般说明,将Struts
应用程序迁移并部署到 WebSphere Portal会比从前容易得多。
|