weblogic迁移至websphere的步骤和方法(简要步骤说明,随笔写的,有点乱,有空再整理一下)

时间:2021-03-30 06:34:22

,原项目weblogic中配置说明(项目使用两个数据源,用到了sessionBean和entityBean)

1,一个jdbc pool连接池,两个DataSource数据源(一个是TX,一个是非TX)

 *如何区分WAS中的两种数据源?

2,ejb的部署(原使用weblogic.xml),以及使用jndi查找EJB的方式

 

*迁移需要修改的三个weblogic配置文件:

weblogic-ejb-jar.xml

EJB 部署描述符

weblogic.xml

Web 应用程序部署描述符

weblogic-cmp-rdbms-jar.xml

持久性部署描述符,它为每个将使用容器管理的持久性的 EJB 定义持久性元素。

 

,hiswas插件配置(确保WAS可以正常解析静态HTML文件,jsp,servelt,EJB)

1,安装HIS

2,运行GenPluginCfg.bat生成plugin-cfg.xml

3,安装websphere-plug-in,plug安装程序会在http.conf中生成以下两行:

 

LoadModule was_ap20_module "D:/WebSphere/Plugins/bin/mod_was_ap20_http.dll"

WebSpherePluginConfig "D:/WebSphere/AppServer/profiles/default/config/cells/plugin-cfg.xml"

 

4,修改http.conf,即通过apache来解析web-module中的静态文件

DocumentRoot “WAS相同的Web目录

 

4,启动WASHIS,测试是否可以正常访问was6根下的DefaultApplication应用

 

参考文档:

http://www-128.ibm.com/developerworks/cn/websphere/zones/studio/wl2was.html

 

 

,迁移步骤:

1,下载并安装WAS6(ExpressBase)

2,安装完后使用系统服务或was提供的菜单启动was

3,到管理控制台建立jdbc连接池和数据源

 *修改JDBC环境变量

 *建立连接池

 *建立数据源

4,java获取连接池的代码(不需要修改)

5,修改EJBDD文件

 

 

问题:

1,未装APACHEDEFAULTAPP不能解释HTML,但其它应用的HTML却可以解析

*但后来新装的应用没做改动却又可以解释HTML

 

2,,安装APACHE,需要更新plugin-cfg.xml才能访问WSA中新装的应用,但不能解析HTML

 

3,测试EAR

*使用JB2006生成的EAR文件,包含一个WEB,两个EJB,可以正常部署

*把上述EAR包删掉EARWARIBM的两个文件,可以正常部署

*把上述EAR包中EJB换为未COMPILE过的EJB,可以正常部署

*把上述EAR包中WAR换为不带WAR扩展名的目录,出现错误

*把上述EAR包中WAR换为带WAR扩展名的目录,出现错误

WEB结论:一定要把WEB打成WAR包才行,并把APPLICTION.XML内容改成对应WAR

*要对EJB中的jndi重命名

新增: ibm-ejb-jar-bnd.xmi,在此文件中配置EJBJNDI名字(可以先使用WS生成这个文件,然后再修改JNDI名字)

修改ejb-jar.xml,给每个SESSION加个ID,并和ibm-ejb-jar-bnd.xmi中的ID对应起来

:检查EJB-JNDI是否都是带包名的,一定要检查

 

 

*经过上述修改,部署成功,(使用SUN JKD编译)但在运行登录时出现错误(后来得出原来是EJBJNDI没找到,那时还没有修改EJBJNDI NAME):

ANTJAVA编译版本改为IBM JDK(后面验证,不需要此步,但如果出现问题最好使用IBM JDK)

 

*部署运行成功,但页面全部是乱码,原页面使用的字符集为:

<%@page     contentType="text/html;    charset=GBK"      language="java"  %>

改为:

<%@ page contentType="text/html; charset=GBK" %>

就好了,因为前一句中有全角的空格字符,WEBSPHERE比较严格

 

*数据源类型:运行系统时查询数据库可以成功,但不能做更新动作,

数据源类型有问题(TX和非TX)

NPLDS中的属性: 将此数据源用于容器管理持久性(CMP(默认是打钩)去掉

也不行

 

对系统中的CMP需要单独处理