问题起因:
升级spring2.x的dtd声明为xsd声明以后,spring2.x+struts2.x的应用在weblogic81下报错,日志提示建议使用jdk1.5或升级xerces。
解决过程:
自己写了一个spring2.x+struts2.x应用在weblogic81下正常运行。说明问题出在应用上。
拷贝出问题的应用的jar包到成功应用的lib目录,问题仍然存在。说明还有其他隐情。
比对两个应用,发现出问题的应用使用了weblogic.xml, 其中配置了优先加载web-inf\lib的jar包。
此时建立jrokit/jar/lib/endrosed目录,放入最新的xerces包,也不生效。
换一个思路,查询DocumentBuilderFactoryImpl,发现有应用中有4处引用,删除xerces.jar的时候,发布成功。至此问题解决!!!!!!!
问题总结:
1 要注意保留成功的案例,以便比对。
最近碰到两个类似的问题了:一个是websphere下的web-inf\template问题,一个就是由于weblogic.xml干预,造成xerces.jar
的问题。
2 要注意观察实际使用的类的版本
3 升级以后,一定要验证单个平台下是否都能正常使用,并增加评审环节,避免影响他人。