was和数据库升级总结

  1. 概述  
    这段时间在做was和oracle的版本升级,由于升级的版本比较新,加上项目年代久远,遇到一些问题,现总结一下,以备后患。
  2. 升级版本
    软件名称升级前版本升级后版本
    Websphere Application Server(WAS)was6.1.0.47was8.5.5.5
    oracle databaseoracle10g-10.1.0.2.0oracle12c-12.1.0.2.0

 

 

 

  3.升级思路
   由于要同时升级两个重要的服务器软件,为避免出现问题时,最快的定位问题出现的原因,升级时先进行was的升级,数据库使用原有的数据库,was升级后确定没问题了,再进行oracle的升级。

  另外由于项目运行环境was6.1中的jre是1.5版本,而升级后was8.5的jre是1.6版本,因此升级前建议将项目的jdk使用was8.5的jdk进行重新编译。

  4.升级时遇到的问题和解决方案


     4.1.1

      问题

       Axis2服务端的一些jar包无法加载,导致基于Axis2的Webservice无法启动

      表现

       系统启动时出现FileUploadException,NoClassDefFoundError,ClassNotFoundException等

      解决方案

       由于was8中自身集成了Axis2服务,作为webservice的engine,所以如果要使用应用系统自身集成的webservice引擎就需要改变类的加载顺序才能顺利加载webservice引擎的jar包,具体参考IBM Knowledge Center中的Using a third-party JAX-WS Web services engine一节

       所以打开was控制台,选择管理模块,点进去后,将类的加载顺序改为父类最后就可以了,这种修改类加载顺序(父类最后)的方式已经过实践验证,确实可行(实践环境是基于was8.5.5.5,Axis2-1.6的一个身份认证服务)。

      如果修改完类加载顺序问题仍没解决,需要将axis2自带的modules下的mar文件改成jar文件放到应用的类路径下。

         原本以为修改类加载顺序后就行了,但是我们系统由于时间久了,用的还是struts1,修改类加载顺序后出现jstl标签库无法加载的情况,具体表现如下

jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.CookieTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.DefineTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.HeaderTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.IncludeTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.PageTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.ParameterTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.ResourceTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.SizeTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.StrutsTei] from /WEB-INF/struts-bean.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.IterateTei] from /WEB-INF/struts-logic.tld
jsp     W com.ibm.ws.jsp.taglib.TldParser endElement JSPG0235E:JSP容器无法装入TagExtraInfo类
[org.apache.struts.taglib.IterateTei] from /WEB-INF/struts-logic-el.tld
... 

       后来发现是由于应用的类路径下有一个com.ibm.ws.webservices.thinclient_6.1.0.jar包跟javaee.jar包冲突,导致标签库无法加载。将com.ibm.ws.webservices.thinclient_6.1.0.jar清除,系统恢复正常

    4.1.2
      问题

       数据库升级成oracle12c时出现连接池获取不到连接,无法访问系统

      表现

       只要访问系统就出现NullPointerExcetpion

      解决方案

        由于数据库升级后,驱动没更新,导致连接池初始化连接时失败,访问系统时无可用连接就出现NullPointerException。解决方法就出更新数据库驱动。到oracle12c安装目录的jdbc目录下的lib,将其中的ojdbc6开头的jar包复制到系统类路径下。

    

    4.1.3
      问题

       数据库升级成oracle12c时出现ORA-28040:没有匹配的认证协议

      表现

       只要访问系统时设计到数据库查询就出现ORA-28040:没有匹配的认证协议

      解决方案

        这个问题可以用度娘搜到很多,看来碰到的机会还挺高。解决方法就是修改数据库安装目录下的sqlnet.ora($ORACLE_HOME/network/admin/sqlnet.ora)文件,增加SQLNET.ALLOWED_LOGON_VERSION = 8,然后重启oracle。

 

    希望对希望升级was和数据库的用户有所帮助。

  

    

 

  

转载于:https://www.cnblogs.com/guanfeng/p/oracle12c.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值