[b]背景[/b]
一直以来都知道web-inf/classes的优先级高于web-inf/lib的优先级,但是实际却未必真的注意了.
因为程序每天都需要更新发布,而且服务器处于托管状态,网络传输速度慢,因此更新系统的时候每次都是将配置文件和classes下面的文件进行覆盖操作.
如上方式部署就产生了一个问题,本来我的系统里面有一些通用类,最近打包成lib方式以供其它应用使用,而且这个包不断的更新.
将该包部署后发现我的系统总是报class的方法找不到,最后查到原因是因为我的应用的classes下面的class与包里面的class重名,因为classloader会优先加载classes下面的class所致.
[b]解决办法[/b]
将classes下面的对应的classes删除,根本解决办法,每次将classes下面的全部删除,然后重新拷贝,而不是简单覆盖.
一直以来都知道web-inf/classes的优先级高于web-inf/lib的优先级,但是实际却未必真的注意了.
因为程序每天都需要更新发布,而且服务器处于托管状态,网络传输速度慢,因此更新系统的时候每次都是将配置文件和classes下面的文件进行覆盖操作.
如上方式部署就产生了一个问题,本来我的系统里面有一些通用类,最近打包成lib方式以供其它应用使用,而且这个包不断的更新.
将该包部署后发现我的系统总是报class的方法找不到,最后查到原因是因为我的应用的classes下面的class与包里面的class重名,因为classloader会优先加载classes下面的class所致.
[b]解决办法[/b]
将classes下面的对应的classes删除,根本解决办法,每次将classes下面的全部删除,然后重新拷贝,而不是简单覆盖.