从Websphere Portal 5.0迁移Struts portlet项目到Websphere Portal 6.0实践

 

 

当前项目是使用Struts Portlet Framework 5.0的,Struts 1.1版本。原本打算在RAD 7里面按照向导起一个Struts Portlet项目,然后再把Modules 一个个迁移过去,但是其好项目后一看傻掉了,是Struts 2.0的框架。于是,只好按照下面的步骤一步一步迁移了。

l          Websphere Portal的安装目录下找到installableApps目录,里面有一个SPFLegacyBlank.war,将它导入到RAD的工作空间中,我们将用其中的文件作为模板。

l          从模板应用程序复制 META-INF/services/org.apache.commons.logging.LogFactory 文件到迁移项目中。

l           将以下 JAR 文件从模板应用程序复制到迁移项目 WEB-INF/lib 目录中如果这些 JAR 文件已经存在,那么覆盖它们。

u          commons-beanutils.jar

u          commons-collections.jar

u          commons-digester.jar

u          commons-fileupload.jar

u          commons-lang.jar

u          commons-validator.jar

u          jakarta-oro.jar

u          PortalStruts.jar

u          PortalStrutsCommon.jar

u          PortalStrutsTags.jar

u          struts.jar

u          struts-legacy.jar

u          StrutsUpdateForPortal.jar

u          wp.struts-commons-logging.jar

u          wp.struts.tlds.common.jar

l          迁移项目 WEB-INF/lib 目录中删除以下文件:

u          commons-dpcp.jar

u          commons-logging.jar

u          commons-pool.jar

u          commons-resources.jar

u          commons-services.jar

u          jdbc2_0-stdext.jar

l          删除迁移项目中的struts TLD文件,并从web.xml中移除这些TLD的引用

u          struts-bean.tld

u          struts-chtml.tld

u          struts-html.tld

u          struts-logic.tld

u          struts-nested.tld

u          struts-portal-html.tld

u          struts-portal-wml.tld

u          struts-template.tld

u          struts-tiles.tld

u          struts-wml.tld

l          修改JSP中对Struts, JSTLURI的约定(非常重要,否则会出现页面无法显示的情况)。例如,

                 <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %>



需要改为
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

l           

u          http://struts.apache.org/tags-bean

u          http://struts.apache.org/tags-chtml

u          http://struts.apache.org/tags-html

u          http://struts.apache.org/tags-logic

u          http://struts.apache.org/tags-nested

u          http://portal/struts/tags-html-1.0

u          http://portal/struts/tags-wml-1.0

u          http://struts.apache.org/tags-template

u          http://struts.apache.org/tags-tiles

u          http://struts.apache.org/tags-wml-1.0

l          在项目portler.xml中移除

                  <config-param>

                  <param-name>FilterChain</param-name>

                  <param-value>StrutsTranscoding</param-value></config-param>

完成上述步骤以后,移植就算完成了。




另外附加一个
Websphere 5.0移植含Web项目的EARWebsphere 6.0上的一个小帖士,是在部署期间很莫名的一个错误:

IWAE0022E Exception occurred loading deployment descriptor for module ‘XXX_Web’ in EAR file XXX_EAR

而在RAD7Websphere6的测试服务器上部署的时候并未出现这个错误,仔细检查过部署描述文件也没发现有什么问题。后来,不知算不算运气好,终于找到原因,原来问题出在Web项目的web.xml,移除其中所有的<Servlet>下的<display-name>后问题得以解决。

参考资料:http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp?topic=/com.ibm.wp.ent.doc/wpf/mig_struts.html

你可能感兴趣的:(从Websphere Portal 5.0迁移Struts portlet项目到Websphere Portal 6.0实践)