weblogic版本升级迁移需要注意事项

一、前言

     今天介绍一下各种类型常用中间件软件版本迁移需要注意的事项。

二、迁移事项

1、weblogic 版本升级

  从 weblogic 低版本(如 weblogic 9 )升级到目前 x86 weblogic11g 环境下 , JDK 版本由 1.5 调整到 1.6 ,版本跨度较大, JDK 产品特性也随之变更,会造成代码不兼容的现象,需要开发商重新将应用程序使用 JDK 1.6 的编译器重新编译代码,做好相应的业务测试工作。

2、SOA版本升级

  从 soa低版本(如 soa 9/10)升级到目前 x86 soa11g环境下,新旧 soa 环境运行机制差异很大,属于大版本的升级范畴,需要重新搭建一套 11g的环境,将现网数据库环境完整的迁移到新环境中去,然后把原先的应用在新环境上重新部署一遍、重新配置相应的数据源组件等。接下来在新的测试环境中,把所有的服务重新测试一遍,记录每一次变更结果,以便于在能够将应用能够从低版本 soa 平滑迁移到 soa 11g 环境中去。

3、不同类型中间件升级迁移

  对于从其它中间件版 (tomcat  jboss/websphere )迁移到 weblogic11g 环境下,需要对相应代码进行检查。  

     1.         tomcat/jboss 迁移到 weblogic11g 注意事项 

           tomcat 是开源中间件产品,本身工作机制,不符合 J2EE 规范,迁移 weblogic 下需要按如下选项进行检查:

    l   JDK Servlet 版本检查 :建议使用 JDK1.6 的版本编译现有最新源代码,由于 WebLogic11g 不支持 J2EE1.6 以下的版本, Servlet 规范使用 2.5 ,不能使用 3.0

     l   第三方类加载检查 : 检查第三框架类加载机制,如 Struts spring 框架类结合时,需要注意的是 Struts plugin 是通过 servlet 加载,排在 Listener 加载之后,而移植到 WebLogic 后, Struts 所有类会在容器启动的时候全部加载,导致 Struts Plugin WebLogic 里不能使用 Spring 管理的 Bean 现象,建议对相应类加载进行修改,使用 Servlet init() 方法进行加载。

     l   包含文件使用方式检查 :在 WebLogic 中不允许在一个文件中出现一次以上类似 <%@ page contentType="text/html; charset=GBK"%> 的代码,当使用 include file 时,请将被 include 的文件中类似代码删除,否则编译后客户端显示为乱码现象。

     l   日志使用方式检查 : 如果应用程序中使用到 log4j 框架记录日志文件,需要在对应的 web.xml 文件中将 log4jListener 加载方式改 Servlet 加载方式。

     l   绝对路径检查 : weblogic 是以 war 包的形式发布的,并没有 realPath ,故不能用 getServletContext().getRealPath("/") 获得绝对路径,需要修改成 getServletContext().getResource("/") 方式

     l   反斜杠检查 : Tomcat 下,引用另外一个 jsp 的时候正反斜杠是不区分的。但是到了 weblogic 下,会报文件找不到的情况,需将 \ 改为 / 即可。

     l    第三方包冲突检查: 为了避免第三包与 weblogic 本身自带的包之间存加载冲突,可以设置 weblogic.xml prefer-web-inf-classes 属性让系统优先使用应用程序自带的包

2.         websphere 迁移到 weblogic11g 注意事项

     l   JDK 版本检查 :部署在 websphere 上的应用是采用 IBM JDK 进行编译,建议使用 Oracle JDK1.6 的版本重新编译后再进行部署。

    l   数据源检查 : websphere 中应用程序使用数据源名称中可以有正斜杠,而在 weblogic 中因连接池名称命名规则问题显示不能实别,需要把正斜杠改了点号,并且将对应代码引用的改为新的名称即可。

     l   通配符检查 : weblogic 不支持 classpath* 格式,只支持相对路径,如WEB-INF/classes/applicationContext.xml

                 l SESSION 检查 : weblogic 上如果需要配置 session 复制功能,需要在 weblogic.xml  里面配置 session-descriptor 相关信息,注意任何需要持久化的 session 中的内容必须都实现 java.io.Serializable 接口,否则无法进行复制。

4、跨操作系统迁移

     从其它非 x86 操作系统( aix solaris windows 等)上跑的应用迁移到 x86 weblogic 11g 环境下,除了上面提到相应检查注意事项外,还需检查应用是否调用操作系统本身内部的文件如 so 文件,如有调用需要检查 x86 环境下是否有同样操作系统文件,或者采取其它方式进行解决。除此之外,还需将应用程序重新按 x86 weblogic11g 所属的 JDK 1.6 版本重新编译,再进行相应业务功能测试。

有需要的朋友可以关注我的公众号,文章每日一更


请使用浏览器的分享功能分享到微信等