问题描述:
我的环境是idea,tomcat,项目是maven构建的dubbo项目。三个子项目:接口定义api、接口实现provider、消费者cosumer。provider调用api中的httpclientUtil类(静态成员变量requestConfig),编译时没有错误,运行时报错
java.lang.NoClassDefFoundError: org/apache/http/client/config/RequestConfig
。写了个 main方法测试了一下httpclientUtil中的方法是 可以正常运行的。 同事的电脑可以运行,一样的代码,我的电脑却不能运行,很诡异的一个问题。
解决方式:
一、上网查询问题原因,一是缺少jar包或者缺少jar包依赖的jar包,很直接的原因;二是jar包或者jar包依赖的jar冲突或者版本冲突。jar包本身问题好说,jar包依赖的jar就比较多了,冲突的话,分布在不同的子项目中,很难判断。尝试了很多,最终无解而终。
二、同事的电脑可以运行,一样的代码,我的电脑却不能运行,感觉像是运行环境,或者本地配置有问题。tomcat版本?maven版本?jdk版本?最后检查了一下tomcat项目部署的地方,我的jdk是系统默认的default,改成自己安装的jdk,重新运行,错误消失,程序一路通行。
总结:tomcat项目部署,不管如何都要选择自己安装的jdk。扩展一下,eclipse/myeclipse/idea这些工具,有用到tomcat、maven、jdk、svn等的地方,都要用电脑安装的,不要用集成工具自带的。