Websphere 7小版本不同导致的JAXP兼容性问题

 

Java, javaEE,  web,  xml,  Xerces,  Websphere, 应用服务器, JAXP

 

开发JAVAEE 应用的技术人员或多或少都遇见过不兼容的问题,总结一下,最容易出现兼容性的无非是日志(common logging, LOG4J)和XML解析(JAXP/Xerces),因为这两个组件太常用以至于几乎所有的企业级组件都会直接或间接的依赖它们,当我们的WEB应用依赖的东西太多时,不可避免出现兼容性问题。很多WEB应用可以正常在TOMCAT和JBOSS上跑,可一上WAS就不能用了,其原因,大多是因为类路径中存在不同版本的依赖项,而不同组件依赖的又是不同版本,导致问题。下面我简单说一下最近同事出现一起兼容性问题的解决过程,供大家在解决同类问题时提供一些思路:

现象:同样的应用,WAR包未做更改,在WAS7.0.0.9上可以运行正常,但在7.0.0.12上运导致应用启动有错,异常原因是某个JAXP的某个类(好象是Node)缺少某个方法定义。

疑问的地方:WAS的小版本的升级也会导致不兼容,这在以前确实没有见过,以前在将TOMCAT应用移植到WAS时,由于WAS也提供了JAXP的相关包,但该包版本太低导致不兼容,当初是通过更改IBM JRE下面的jaxp.properties来解决,JAXP实现更改为我们需要的实现,但这次更改该文件不管事,还是出现同样的错误 。

怀疑点:还是怀疑生产环境里存在两个版本不同的JAXP,但即然已经指定了实现,为什么还会出问题呢?况且WAS的版本只有一些小变化,为什么会出现这么大的问题呢?另外一点,WAS是刚装的,并未对其做什么更改,最终将怀疑点锁定在我们提供的WAR包上。

过程:在开发环境寻找出现问题的类,果然找到两个版本的JAXP,其中一个有那个接口,一个没那个接口,它们分别名字:xml-apis.jar, xmlAPIS.jar,但实际都是JAXP接口包,这是开发人员由于引入第三方组件自动通过MAVEN加上去的。去掉低版本的包,再部署,问题得到解决。

后续:如果去掉该包导致第三方其它组件有问题,那没办法,只能更换那个第三方组件的版本,让它兼容我们现在的JAXP。

原来:当类路径中存在多个版本的类时,先加载哪个类是不可预测的,对于不同的JRE,文件结构等都有可能不一样,在本案中,7.0.0.9上加载了高版本的类,而在7.0.0.12上却加载了低版本的类,所以导致问题。

Websphere 7小版本不同导致的JAXP兼容性问题相关推荐

  1. 【推荐】极限编程的十二大原则——小版本

    小版本:用最少的代码工作量带来最大的业务价值. 这个原则是意思是为了高度迭代,与客户展现开发的进展,小版本发布是一个可交流的好办法,客户可以针对性提出反馈.但小版本把模块缩得很小,会影响软件的整体思路 ...

  2. 周鸿祎产品秘笈:小版本成就大产品

    周鸿祎产品秘笈:小版本成就大产品 来源:360安全中心 发布日期:2009-09-22 已有67条评论    我要评论 近日,360公司董事长周鸿祎做客腾讯科技<新产品经理>系列访谈,期间 ...

  3. oracle 导数据报exp00058_一文看懂oracle12c数据库跨小版本迁移

    概述 简单记录一下最近做的一个测试环境迁移,主要是从12.2.0.1 跨两个小版本迁移到19c(12.2.0.3),操作系统均为centos7,下面一起来看看吧~ 一.导出测试环境数据 1. 创建路径 ...

  4. tensorflow版本问题导致的错误AttributeError: module ‘tensorflow‘ has no attribute ‘***‘

    问题解决--AttributeError: module 'tensorflow' has no attribute 'placeholder' - yuanyuanWu11 - 博客园 tensor ...

  5. 12c创建为容器数据库_详解oracle12c数据库跨小版本迁移步骤

    概述 简单记录一下最近做的一个测试环境迁移,主要是从12.2.0.1 跨两个小版本迁移到19c(12.2.0.3),操作系统均为centos7,下面一起来看看吧~ 一.导出测试环境数据 1. 创建路径 ...

  6. dmp导入数据 oracle_一文看懂oracle12c数据库跨小版本迁移

    概述 简单记录一下最近做的一个测试环境迁移,主要是从12.2.0.1 跨两个小版本迁移到19c(12.2.0.3),操作系统均为centos7,下面一起来看看吧~ 一.导出测试环境数据 1. 创建路径 ...

  7. 相同java代码,编译生成class文件不同的原因-JDK版本不同(大版本相同,小版本不同)

    ■前言 使用Jenkins自动打包,生成jar文件 检证时,和本地手动执行mvn命令生成的jar比较 使用winMerage进行比较. ■现象 发现,除了pom.properties文件的改行code ...

  8. glassfish 是oracle的,GlassFish“百天”小版本 彰显Oracle的大功力

    GlassFish"百天"小版本 彰显Oracle的大功力 51CTO快译]虽然GlassFish的3.0.1版本只是一个"百天"版本与上次更新不过100天左右 ...

  9. ADT版本不同导致的一个问题

    之前碰到过,但是忘了,所以又琢磨了一段时间在记起来,所有有些事不写一写,记一记还是不行的. 问题的现象是:某一个包在工程里明明存在,而且工程项目代码均正常,但是就是在AVD运行的时候日志显示某个类不存 ...

最新文章

  1. 转载:配置nginx支持pathinfo功能
  2. 【Pygame小游戏】来了来了它来了——这款五子棋小游戏超A的,分享给你的小伙伴儿一起pk吧~
  3. 树莓派python教程_两个简易的树莓派初学者Python程序
  4. 吃豆人(luogu 7472/NOI Online 2021 普及组 T2)
  5. python django mysql结果获取_Django中从mysql数据库中获取数据传到echarts方式
  6. ubuntu16.04下安装windows软件,以及卸载.
  7. gson转对象变成null_FastJson、Jackson、Gson进行Java对象转换Json的细节处理
  8. 2015年C语言组混搭 C/C++
  9. 错误摘要 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。
  10. 十分钟学习python_Python学习笔记一:十分钟入门
  11. MongoDB,分组,聚合
  12. 记一次Win10环境python3.7安装dlib模块趟过的坑
  13. alternative php cache semaphore,如何正确使用PHP5信号灯?
  14. 【图像处理】基于matlab GUI图像直方图+滤波+小波变换+分割处理系统【含Matlab源码 608期】
  15. 2022联想创新科技大会--智能为变革赋能
  16. 百度原创度在线检测_资深自媒体作者:做自媒体没有这款“原创度检测”软件是不行的...
  17. opencv 图片清晰度检测
  18. 独角兽公司超级创始人早期的30个特质
  19. AQSW公司OA系统需求分析
  20. 天创速盈带您速读:怎么提升拼多多关键词综合排名?方案如下

热门文章

  1. linux文件系统挂载磁盘,linux – 无法挂载磁盘(VFS:找不到ext4文件系统)
  2. 算法训练之STL使用汇总
  3. 解决Keepalived脚本启动时warning、Unsafe
  4. 笔记-信息化与系统集成技术-供应链管理
  5. 笔记-高项案例题-2019年下-计算题
  6. 数据格式之战:JSON vs XML
  7. Node提示:error code Z_BUF_ERROR,error error -5,error zlib:unexpected end of file
  8. Java开发中使用模拟接口moco响应中文时乱码
  9. ZedGraph怎样在生成曲线时随机生成不一样的颜色
  10. VS中调试CS程序时提示:不支持互操作调试