目前在做一个迁移项目(jsp+struts+ejb2.0),特把迁移重点记录下来存档
原系统平台:weblogic8+oracle9i
目标系统1:jboss4.0.5+oracle9i
目标系统2:jboss4.0.5+sqlserver2000 sp4
--第二篇--
(以下文章内容仅个人观点,如有错误,欢迎交流)
首先介绍到迁移到目标系统1,即jboss4.0.5+oracle9i平台的迁移,即从weblogic到jboss的迁移,数据库无变化(应用服务器级迁移要比后端数据库级迁移容易方便的多,后面的文章中会有介绍):
迁移层次及步骤:
一,应用服务器级的迁移
主要是对wls和jboss中配置的迁移,本项目比较简单,只需迁移数据源配置即可
1,weblogic中使用的管理控制台配置连接池和数据源
2,jboss通过增加.xml的数据源配置文件配置数据源,配置文件部署之前需要把其中所需要的数据库驱动类(.jar包)放入jboss的类加载路径中.一般需要放在$JBOSS_HOME/server/default/lib中即可
oracle数据源文件的配置如下(使用local-tx-datasource,保证ejb声明式事务类型):
<datasources>
<local-tx-datasource>
<jndi-name>DataSource</jndi-name>
<connection-url>jdbc:oracle:thin:@ip:1521:sid</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>user</user-name>
<password>pwd</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
</local-tx-datasource>
</datasources>
二,应用程序结构级的迁移
一,EAR包结构变化
1,weblogic平台ear包,下面包括一个war的目录(不带war扩展名)及ejb.jar
weblogic相对jboss和websphere对j2ee规范要求不是很严格,其中的war包是否带扩展名或是否打成jar格式都无所谓
2,jboss平台中,其下的web应用(目录格式或打包)必须带.war扩展名.否则部署失败
二,EJB的迁移(本处使用session stateless EJB)
EJB主要是针对DD文件迁移,两个平台的标准的ejb部署描述文件:ejb-jar.xml不需要任何变动,
只需修改另外一个应用服务器相关的DD文件(主要是描述JNDI Name)即可:
1,weblogic的DD文件:ejb-jar.xml+weblogic-ejb-jar.xml
weblogic-ejb-jar.xml的描述格式举例:
<weblogic-enterprise-bean>
<ejb-name>Borrower</ejb-name>
<jndi-name>com.young.npl.borrower.ejb.Borrower</jndi-name>
</weblogic-enterprise-bean>
2,jboss的DD文件:ejb-jar.xml+jboss.xml
<session>
<ejb-name>Borrower</ejb-name>
<jndi-name>com.young.npl.borrower.ejb.Borrower</jndi-name>
</session>
三,代码级迁移
1,使用JNDI查数据源的格式需要修改
weblogic格式:DataSource
jboss格式:java:/DataSource (需要增加"java:/"前缀)
2,jsp包含文件的编译方式
weblogic不允许在jsp的包含文件与原文件中同时存在重复的声明和定义,但jboss却允许.
此问题发生在jsp字符集<%@page contentType...%>,在weblogic中不可以同时存在于公共包含文件及主文件中,否则编译出错;
在jboss中,如果公共包含文件中存在中文,则必须包含上述字符集代码行,而且包含页面也必须包含字符集代码行;
jsp中的其它引用标记也同样符合两种平台以上规则:weblogic不允许重复引入;而jboss可以
3,jsp标记大小写问题
当使用jsp taglib时,发现两种平台居然对大小写有着不同的编译方式:
比如:<html:form action="***" onSubmit="***">
在weblogic中, onSubmit中的S大小写都可以;但jboss中S必须小写;
在这次迁移中暂时发现以上问题,修改后系统运行基本正常.
以后的日志会写到此软件系统从weblogic813>>websphere6上的迁移过程,和向jboss上迁移规范变动要更多一些.
文章中技术观点限于本人水平,可能会有不当或错误之处,望大家指点