博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次测试环境项目启动异常
阅读量:6374 次
发布时间:2019-06-23

本文共 908 字,大约阅读时间需要 3 分钟。

起因

在一次本地代码测试完成之后,信心满满的上传到测试环境,启动项目。刚启动就满屏的错误

查看报错,可见是由于缺失
SqlMapClientFactoryBean 导致的启动异常。尝试在本地再一次启动项目,项目正常启动。那为什么在测试环境就会启动异常?带着不解,搜索
SqlMapClientFactoryBean ClassNotFoundException 相关问题,发现
SqlMapClientFactoryBean 用于
Spring
Ibatis 整合,但是在
Spring4 之后,已不再支持 Ibatis,Spring 已将该类删除。在本地环境搜索 SqlMapClientFactoryBean 发现其存在,并位于 spring-orm 3.2.18.RELEASE 包中。按照正常推断,打包完成后部署包应该也是存在。于是登陆测试环境,打开依赖的 lib 中 查看,果然 spring-orm 依赖的非 3.2.18.RELEASE 版本,其为 4.3.12.RELEASE 版本。看来测试环境启动异常是因为依赖的不对的版本的 spring-orm 。

现在问题就变成了打包发布之后,其依赖的包版本就变了。查看项目的 pom 文件

发现在 pom 中, 其 spring-orm 已经明确指定 3.2.18.RELEASE,那么发布版本的 4.3.12.RELEASE 版本的 jar 是哪里过来的那。仔细查看,发现其继承父 pom,父pom 指定的 orm 版本正好是 4.3.12.RELEASE。难道子 pom 指定版本并不会覆盖父 pom?但是仔细思考,maven 不可能这么设计。实在没辙,再次运行打包命令,发现其还是 4.3.12.RELEASE。查看 pom,发现其使用了 maven-assembly 插件,将相关依赖包打入一个统一的 lib 中。那会不是于是 assembly bug?尝将 maven-assembly 换成最新版本,再次打包,期待的 spring-orm 3.2.18.RELEASE 正确进入到 lib 中。再次发布测试环境,正常的启动完成。

参考链接:

转载地址:http://zynqa.baihongyu.com/

你可能感兴趣的文章
一个简单的密码学实例
查看>>
Vlan配置详解之单臂路由
查看>>
沟通的艺术之幻灯片这奇女子
查看>>
【一天一个shell命令】文本内容操作系列-awk补充二(函数)
查看>>
自己分析的子网划分原理
查看>>
嘀嘀和快的上演十月围城 020模式被强化
查看>>
Java减肥高手Xtend 捆绑Eclipse IDE
查看>>
监控利器Nagios的替代者Icinga
查看>>
Windows脚本初探之VBScript常量和变量
查看>>
Gradle 1.12用户指南翻译——第三十章. CodeNarc 插件
查看>>
Oracle 10g R2升级到Oracle 11g R2
查看>>
Oracle Database字符集(1)--案例分析
查看>>
kvm 性能调优
查看>>
如何禁止远程桌面时使用本地administrator登录
查看>>
最“纯粹”的搜索客户端:百度搜索
查看>>
WP7开发学习:第一个WP7程序—Hello WP7
查看>>
cacti监控mysql
查看>>
mysql 常用语句
查看>>
怎样用最简单的方法在GNS 3中调用secureCRT终端软件
查看>>
Ubuntu企业服务器管理经验谈(一)
查看>>