1、如果Web工程引用commons-io-1.3.2.jar,引用工程引用commons-io-2.0.1.jar
部署包引用的是commons-io-1.3.2.jar
2、如果Web工程引用commons-io-2.0.1.jar,引用工程引用commons-io-1.3.2.jar
部署包引用的是commons-io-2.0.1.jar
3、通过以上分析可以看出,部署后的lib下只有Web工程lib下的jar包,引用工程(Java工程)引用的jar包并不会被放到部署包的lib下。也就是说部署时,只引用class文件,不引用jar包。
4、所以在用MyEclipse开发时,Web工程和引用工程都没有报错,因为所有的Java类都有相应的jar包引用。但是部署到Tomcat后,引用工程的工具类中的方法执行时,就会报java.lang.ClassNotFoundException异常。因为工具类引用的jar包并没有被部署到Tomcat下。
5、建议:将两个工程引用的jar包全部放到Web工程的lib包下,引用工程引用Web工程的jar包。这样就不会出现“看似没有错误,但是部署后运行时却报类找不到的错误”这种情况了。