LiferayPortal5.2.2在Websphere下的部署过程

网上流转一篇描述LiferayPortal4在Websphere6下的安装的文章,但那只是解决了Portal核心应用的安装问题,要让Portal的功能完全可以使用,还有一段路。

经过实践,将Liferay)ortal5.2.2安装到了Websphere7.0下面,常用的功能均能正常运行,但还存在少数js文件不能访问的问题。

Error 500: javax.servlet.ServletException: Filter [Cache Filter - Resource]: filter is unavailable.

 修改CacheFilter的processFilter()方法可解决,详见http://issues.liferay.com/browse/LPS-3392

CacheResponse cacheResponse = new CacheResponse(
response, StringPool.UTF8);

processFilter(
CacheFilter.class, request, cacheResponse, filterChain);

/*WORKAROUND FOR WEBSPHERE*/
if(cacheResponse.getContentType()==null){
String path=request.getPathInfo();
if(path.endsWith(".css")){
cacheResponse.setContentType("text/css");
}else if(path.endsWith(".js")){
cacheResponse.setContentType("text/javascript");
}else if(path.endsWith(".html")){
cacheResponse.setContentType("text/html");
}
_log.info("setting cacheResponse content type:"+cacheResponse.getContentType());
}

/*END OF WORKAROUND FOR WEBSPHERE*/

cacheResponseData = new CacheResponseData(
cacheResponse.getData(), cacheResponse.getContentType(),
cacheResponse.getHeaders()); 

 

 

 

环境:WindowXP LiferayPortal5.2.2  Oracle10g  Websphere7.0

 

1      变量说明

${WAS_INSTALL_ROOT}   WAS 安装后得到的 IBM\WebSphere\AppServer 目录。

${portal_home} Portal 部署包解压后得到的 liferay-portal-5.2.2 目录。

2      安装步骤

2.1     安装 WebSphere7.0

先安装 WebSphere7.0

2.2     创建 JNDI 数据源

登录 WebSphere 的管理控制台。

2.2.1     准备工作

1.          ${portal_home}\tomcat-5.5.27\common\lib\ext 下的文件,全部复制到 ${WAS_INSTALL_ROOT} \lib\ext

2.          因为 WebSphere7 使用 JDK1.6 ,而 Oracle10g 的驱动 ojdbc14.ar JDK1.6 有一定的兼容性问题,会以下面的提示信息,可将 Oracle11g 的驱动文件 object6.jar 复制到 ${WAS_INSTALL_ROOT} \lib\ext 下面(用10g的驱动也不会有问题)

 

[10-11-10 15:32:34:171 CST] 00000014 InternalGener I   DSRA8204I: Database 产品版本: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

[10-11-10 15:32:34:187 CST] 00000014 InternalGener I   DSRA8205I: JDBC driver 名: Oracle JDBC driver

[10-11-10 15:32:34:203 CST] 00000014 InternalGener I   DSRA8206I: JDBC driver 版本: 10.2.0 .1.0

[10-11-10 15:32:34:203 CST] 00000014 InternalOracl W   DSRA7042W: Oracle 不支持将版本 10 JDBC 驱动程序与应用程序服务器使用的 Java 运行时环境的版本配合使用。

 

 

3.          重启 WebSphere

2.2.2     创建 JDBC 提供程序

1.          点击 [ 资源 ]->[JDBC]->[JDBC 提供程序 ]

2.          选择一个作用域,例如选择最下面的一个,作用域为 server1

3.          [ 新建 ]

4.          数据库类型”选择 Oracle; “实现类型”选择“连接池数据源” ;

5.          “另存为 WebSphere 变量 ${ORACLE_JDBC_DRIVER_PATH} ojdbc6.jar 的目录位置”设置为: ${WAS_INSTALL_ROOT}/lib/ext

6.          [ 下一步 ]

7.          [ 完成 ]

8.          点击“ Oracle JDBC Driver ”链接

9.          将“类路径”里面的 ojdbc6 改成 ojdbc14

10.      [ 确定 ]

11.      点击页面上方的“保存”链接

2.2.3     创建数据源

1.          点击 [ 资源 ]->[JDBC]->[ 数据源 ]

2.          选择一个作用域,例如选择最下面的一个,作用域为 server1

3.          [ 新建 ]

4.          数据源名 填写“ PortalOracleDatasource ”;“ JNDI 名称”填写“ jdbc/LiferayPool

5.          [ 下一步 ]

6.          点击“使用现有的 JDBC 提供程序”,选择“ Oracle JDBC Driver

7.          [ 下一步 ]

8.          URL ”,按实际的数据库连接串填写,例如: jdbc:oracle:thin:@172.16.25.219:1521:orcl

9.          [ 下一步 ]

10.      [ 下一步 ]

11.      [ 完成 ]

12.      点击“ PortalOracleDatasource ”链接

13.      点击页面右边“ JAAS –J2C 认证数据”链接

14.      [ 新建 ]

15.      “别名”可任写,例如: portalDbUser ;“用户标识”和“密码”为连接数据库的用户名和密码。

16.      [ 确定 ]

17.      点击页面上方的“保存”链接

18.      点击页面上方的“ PortalOracleDatasource ”链接

19.      [ 安全性设置 ]- 下面的“组件管理的认证别名”和“容器管理的认证别名”都选择刚才创建的认证。

20.      [ 确定 ]

21.      点击页面上方的“保存”链接

22.      勾选“ PortalOracleDatasource ”链接前面的选择框,点击 [ 测试 ]

23.      页面上方将出现测试成功的提示消息。

2.3       修改 DefaultApplication 应用的上下文根

因为 Portal 的核心应用必须使用根上下文“ / ”,而 WebSphere 自带的示例应用 DefaultApplication 已经使用了根上下文,所以需将其改名。

1.          登录 Websphere 管理控制台

2.          [ 应用程序 ]->[ 应用程序类型 ]->[WebSphere 企业应用程序 ]

3.          点击“ DefaultApplication ”链接

4.          点击“ Web 模块属性”下面的“ Web 模块的上下文根”链接

5.          将“上下文根”的值改为“ /defaultWeb

2.4     部署 Portal 核心应用

Portal 的核心应用位于 ${portal_home}\tomcat-5.5.27\webapps\ROOT 下面

1.          修改 WEB-INF\classes\portal-ext.properties 文件,加入一行文字(可以不修改,默认在c:\windows\system32\config\systemprofile下面创建liferay目录)

 

default.liferay.home=C:/liferay

 

2.          ROOT 下面的文件打成 portal.war

3.          登录 Websphere 管理控制台

4.          [ 应用程序 ]->[ 新建应用程序 ]->[ 新建企业应用程序 ]

5.          在“本地文件系统”下,点击“浏览”,选择刚才打包的 portal.war

6.          一直点击 [ 下一步 ] ,在“为 Web 模块映射上下文根”步骤,上下文根一定要为“ /

7.          [ 完成 ] (安装需要比较长的时间)

8.          点击页面下方的“保存”链接(需要较长的时间响应)

9.          [ 应用程序 ]->[ 应用程序类型 ]->[WebSphere 企业应用程序 ]

10.      选取“ portal_war ”,点击 [ 启动 ] 按钮

11.      从后台可以看到 portal 启动成功的信息,但 Portal 还不能访问,需要重启 WebSphere

12.      重启后,可通过 http://localhost:9080 访问 Portal ,但要部署完 mytheme 主题后,页面才会显示正常, mytheme 主题的部署见下一节“部署插件”。

13.      如果提示该页无法显示,可以是 web 应用的默认端口有所变化,可按下面的步骤查看访问端口

14.      [ 服务器 ]->[ 服务器类型 ]->[WebSphere Application Server]

15.      点击“ Server1 ”链接

16.      点击右边的 [ 通信 ]->[ 端口 ]

17.      WC_defaulthost web 应用的访问端口

2.5     部署插件

${portal_home}\tomcat-5.5.27\webapps 下面的 tunnel-web mytheme 两个目录下面的文件,分别打成 war 包,按照下面部署插件的方法安装到 WebSphere

2.5.1     启用 Portal 的插件自动部署功能

Portal 的安装手册中,有描述如何开启 Portal 的自动部署功能。我们需要配置“目标目录”的值,这里我们在原来“部署目录”的同一级,创建一个 deplayed 目录。

 

2.5.2     插件部署的通常方法

注意: tunnel-web mytheme 的部署可以跳过步骤 1 2

 

1.          将打包后的插件( war 文件)复制到“部署目录”

2.          系统会自动对 war 文件进行处理,并将文件移动到“目标目录”,整个过程大概需要几十秒的时间

3.          登录 Webshpere 的管理控制台

4.          [ 应用程序 ]->[ 应用程序类型 ]->[WebSphere 企业应用程序 ]

5.          选取“ portal_war ”,点击 [ 更新 ] 按钮

6.          [ 应用程序更新选项 ] 下,点选“替换或添加单个模块”,选择“目标目录”下要上传的 war 文件,指定模块的名称(注意 war 文件所有路径不能含有中文)。

 

 

7.          [ 下一步 ]

8.          按照下图所示选择后, [ 下一步 ]

 

9.          一直点击 [ 下一步 ] ,在“为 Web 模块映射上下文根”这一步骤,“上下文根”的值与模块名对应

 

10.      [ 完成 ] (安装需要比较长的时间)

11.      点击页面下方的“保存”链接(需要较长的时间响应)

 

2.5.3     Portlet 插件部署的特殊操作

1.          需要在 Portlet war 包的 WEB-INF 目录下增加 web.xml 文件, web.xml 的内容如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

       <context-param>

                  <param-name>com.ibm.websphere.portletcontainer.PortletDeploymentEnabled</param-name>

                  <param-value>false</param-value>

       </context-param>

       <listener>

              <listener-class>com.liferay.portal.kernel.servlet.PortletContextListener</listener-class>

       </listener> 

</web-app>

 

2.          如果使用的是我们提供的 Portlet 模板开发的插件,还需要修改 Portal 企业应用的类加载方式,按下面的步骤操作

3.          [ 应用程序 ]->[ 应用程序类型 ]->[WebSphere 企业应用程序 ]

4.          点击“ portal_war ”链接

5.          点击“详细属性”下的“类装入和更新检测”链接

6.          WAW 类装入器策略”,选择“应用程序的单个类装入器”,点击 [ 确定 ]

7.          点击页面上方的“保存”链接

 

你可能感兴趣的:(oracle,应用服务器,jdbc,企业应用,websphere)