运行java web项目时提示:java.lang.NoSuchFieldError: INSTANCE,跟踪发现时httpClient版本冲突的原因,删除冲突的jar包即可。
如果不知道冲突jar包的位置,可以通过如下的方法跟踪:
如图:
String className = SSLConnectionSocketFactory.class.getName();
String classNamePath = className.replace(".", "/") + ".class";
URL is = SSLConnectionSocketFactory.class.getClassLoader().getResource(classNamePath);
String path = is.getFile();
path = StringUtils.replace(path, "%20", " ");
Sysout.out.println(StringUtils.removeStart(path, "/"));
通过这个方法可以看到class的加载路径,通过加载路径查找冲突的jar,删除即可。