问题描述
写了了一个HttpClient的封装类,运行时候报错: class file for org.apache.http.annotation.NotThreadSafe not found。
引起原因
常见的两个原因:
- The problem is that the httpclient and httpcore versions are incompatible。翻译过来就是引发这个问题的原因是httpclient包和httpcore包的版本号不兼容。
- 4.5.2的httpclient本身就是依赖了4.4.4版本的httpcore;但由于项目里偏偏引入更高版本的httpcore,一旦导入某些jar包譬如log4j2包含httpcore,就会编译报错
这里我没有使用log4j,而是使用了httpclient和httpcore,所以是包不兼容引起的。
解决方案
这里我把httpclient升级成4.5.13版本,httpcore升级成4.4.15,不再报错。