httpclient.jar和fastjson api.jar发生冲突了,怎么解决?两个包都想要

紧急求救,1.4的程序我用1.5编译了之后 添加了两个jar包 xerces.jar
xercesimpl.jar 好像是包冲突了报错
[问题点数:100分]
紧急求救,1.4的程序我用1.5编译了之后 添加了两个jar包 xerces.jar
xercesimpl.jar 好像是包冲突了报错
[问题点数:100分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。&&&&HttpClient方式网络请求的jar包
HttpClient方式网络请求的jar包
Java项目中用HttpClient方式访问网络的jar包
1、httpclient-4.1.2.jar
2、httpcore-4.1.2.jar
3、commons-logging-1.1.1.jar
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
移动开发下载排行3178人阅读
java(116)
& & &今天在本地和测试环境用jetty跑应用发现本地环境跑起来有问题,而测试环境却没有问题,出现的是war包的WEB-INF的lib目录下有两个jar包a.jar和b.jar,但是这两个jar包邮两个包名和类目一样,但是功能却不一样的类,那么jetty启动加载这个类的时候用的是a.jar里面的类还是b.jar里面的类呢,出了问题只能查了。
& 2.本地环境jetty加载目录里面是b.jar排在a.jar前面,而测试环境是a.jar排在b.jar前面,而记载a.jar里面的类是正确的。我们看看jetty怎么处理:
& &首先jetty加载一个APP war的过程中WebInfConfiguration.java类里面加载类的顺序,优先加载的是WEB-INF/classes,然后再加载WEB-INF/lib里面的jar包,而jar的加载顺序又是怎么样的呢?
public void configure(WebAppContext context) throws Exception
//cannot configure if the context is already started
if (context.isStarted())
if (Log.isDebugEnabled()){Log.debug(&Cannot configure webapp &+context+& after it is started&);}
Resource web_inf = context.getWebInf();
// Add WEB-INF classes and lib classpaths
if (web_inf != null && web_inf.isDirectory() && context.getClassLoader() instanceof WebAppClassLoader)
// Look for classes directory
Resource classes= web_inf.addPath(&classes/&);
if (classes.exists())
((WebAppClassLoader)context.getClassLoader()).addClassPath(classes);
// Look for jars
Resource lib= web_inf.addPath(&lib/&);
if (lib.exists() || lib.isDirectory())
((WebAppClassLoader)context.getClassLoader()).addJars(lib);
// Look for extra resource
List&Resource& resources = (List&Resource&)context.getAttribute(RESOURCE_URLS);
if (resources!=null)
Resource[] collection=new Resource[resources.size()+1];
collection[i++]=context.getBaseResource();
for (Resource resource : resources)
collection[i++]=
context.setBaseResource(new ResourceCollection(collection));
((WebAppClassLoader)context.getClassLoader()).addClassPath(classes); &&这是加载每个class类的过程
&&&addURL(url);调用jdk包的URLClassPath把每个class文件放到list的后续,每次加载类的时候从这个list第一个开始查找,找到则加载
& 这里看完我们就可以再看加载lib下面的jar包的过程了
addJars是对lib下面所有jar包用jdk的list方法获取所有jar包,然后对每个jar进行处理。
/* ------------------------------------------------------------ */
/** Add elements to the class path for the context from the jar and zip files found
in the specified resource.
* @param lib the resource that contains the jar and/or zip files.
public void addJars(Resource lib)
if (lib.exists() && lib.isDirectory())
String[] files=lib.list();
for (int f=0;files!=null && f&files.f++)
Resource fn=lib.addPath(files[f]);
String fnlc=fn.getName().toLowerCase();
if (!fn.isDirectory() && isFileSupported(fnlc))
String jar=fn.toString();
jar=StringUtil.replace(jar, &,&, &%2C&);
jar=StringUtil.replace(jar, &;&, &%3B&);
addClassPath(jar);
catch (Exception ex)
Log.warn(Log.EXCEPTION,ex);
&String[] files=lib.list(); 这一行就是关系jar包的加载顺序关键点,这里列出来的顺序就是jar包的加载顺序,
/* --------------------------------------------------------- */
* Returns a list of resources contained in the given resource
public String[] list()
String[] list =_file.list();
if (list==null)
for (int i=list.i--&0;)
if (new File(_file,list[i]).isDirectory() &&
!list[i].endsWith(&/&))
list[i]+=&/&;
&最终&String[] list =_file.list();就是java.io.File的list方法,而这个方法的顺序是怎么样,只能看jdk的代码了。我们写个程序简单测试下
import java.io.F
public class FileListTest {
* @param args
public static void main(String[] args) {
String[] files = new File(&E:\\project\\305_1_industry\\bundle\\war\\target\\industry.bundle.war-1.0-SNAPSHOT\\WEB-INF\\lib&).list();
for(String str: files){
System.out.println(str);
ajax.jsonlib-2.2.jar
ajax.json__ezmorph-1.0.4.jar-2.2.jar
ajax.json__json-lib-2.2-jdk15.jar-2.2.jar
apache.activemq-5.3.0-patch.jar
apache.geronimo.j2ee-management-1.0.1.jar
apache.geronimo.jms-1.1.1.jar
apache.hadoop.zookeeper-3.3.3.jar
authz.core-1.0.0-744-6.jar
authz.member-1.0.0-050-7.jar
authz.webx3-1.0.0-318-8.mon-1.0.9.6.jar
base.dal-1.0.9.6.jar
base.privilege-1.0.9.6.jar
base.resource-1.0.9.6.jar
bouncycastle.provider-1.38-jdk15.jar
brand_shared.api-1.0-SNAPSHOT.jar
buc.sso.client-0.1.9.jar
mon-0.1.9.jar
cat.client-2.0.0.jar
caucho.hessian-3.2.0.jar
cmshollywood.dispatcher-1.0.0-653-5.jar
codehaus.groovy-1.6.3.jar
codehaus.jackson.core-1.5.4.jar
codehaus.jackson.mapper-1.5.4.jar
codehaus.mvel-2.0.6.jar
concurrent-0.0.0.jar
dragoon-common-2.7.0.jar
druid-0.2.1.jar
dubbo-1.0.99-dummy.jar
dubbo.all-2.0-520-32.jar
dubbo.core.api-1.0.99-dummy.jar
mon-1.0.99-dummy.jar
dubbo.core.registry.default-1.0.99-dummy.jar
dubbo.core.rpc-1.0.99-dummy.jar
dubbo.core.rpc.dbo-1.0.99-dummy.jar
dubbo.core.rpc.http-1.0.99-dummy.jar
dubbo.core.service-1.0.99-dummy.jar
dubbo.core.service.server-1.0.99-dummy.jar
dubbo.hessian.lite-3.2.1.osgi_03.jar
dubbo.remoting-2.3.7.jar
dubbo.rpc-2.3.7.jar
eclipse.aspectj-1.5.4.jar
eclipse.aspectj.weaver-1.6.5.jar
fastjson-1.1.9.jar
fasttext-css-1.3.22.jar
fasttext-html-1.3.5.jar
fasttext-psoriasis-1.3.22.jar
fasttext-sec-1.3.22.jar
fasttext-segment-1.3.22.jar
fasttext-utils-1.3.22.jar
fasttext.all-1.3-625-30.jar
gene_shared.api-1.0-644-61.jar
gene_mon-1.0-541-64.jar
headquarters.biz.cache-1.3-233-9544.jar
mon-1.1-945-9.jar
headquarters.biz.viewcache-1.2-231-16.jar
headquarters.biz.viewcachebase-1.2-154-19.jar
headquarters.capsule-2.5-905-10.mons.fasttext-1.2-242-10138.jar
headquarters.jdbc.proxy-1.1-307-7.jar
industry.biz.apiimp-1.0-SNAPSHOT.jar
industry.biz.brand-1.0-SNAPSHOT.mon.config-1.0-SNAPSHOT.jar
industry.dal-1.0-SNAPSHOT.jar
industry.web.brand-1.0-SNAPSHOT.jar
industry.web.brandbops-1.0-SNAPSHOT.jar
jakarta.ant-1.7.1.jar
jakarta.ant.launcher-1.7.1.mons.beanutils-1.7.0.mons.codec-1.3.mons.collections-3.2.1.mons.configuration-1.5a.mons.dbcp-1.4.mons.digester-1.8.mons.fileupload-1.2.1.mons.httpclient-3.1.mons.io-1.4.mons.jelly-1.0-RC1.mons.jexl-1.1.mons.lang-2.4.mons.logging-1.1.mons.pool-1.5.4.jar
jakarta.ecs-1.4.2.jar
jakarta.log4j-1.2.16.jar
jakarta.oro-0.0.0.jar
jakarta.taglib.jstl-0.0.0.jar
jakarta.taglib.jstl.support-0.0.0.jar
jakarta.velocity-1.6.4.jar
java.jce.cryptix-0.0.0.jar
jboss.hornetq-core-client-2.2.13.jar
jboss.jboss-netty-3.2.5.Final.jar
jdbc.mysql.mysql-connector-5.0.4.jar
jdbc.oracle-11.1.0.7.jar
libra_shared.biz-1.0-641-5.jar
libra_shared.dal-1.0-425-2.jar
libra_shared.service-1.0-506-2.jar
member.service.api-1.0.0-645-19.jar
member.service.model-1.0.0-625-22.jar
misc.aspectj__aspectjrt-1.6.5.jar-1.6.5.jar
misc.aspectj__aspectjweaver-1.6.5.jar-1.6.5.jar
misc.htmlparser-0.0.0.jar
misc.javassist-3.9.0.GA.jar
misc.javasvn-1.3.0.jar
misc.javasvn__jna.jar-1.3.0.jar
misc.javasvn__svnkit-1.3.0.jar-1.3.0.jar
misc.javasvn__svnkit-cli-1.3.0.jar-1.3.0.jar
misc.javasvn__svnkit-javahl-1.3.0.jar-1.3.0.jar
misc.javasvn__trilead.jar-1.3.0.jar
misc.jgroup-2.4.1.1.jar
napoli.client-1.5.6.mon-1.5.6.jar
napoli.dragoon-1.5.6.jar
napoli.normandy-1.5.6.jar
network.core-1.2.9.jar
nonda.core-0.1.2.jar
nonda.databind-0.1.2.jar
nonda.databind-webx3-0.1.2.jar
nonda.validation-0.1.2.jar
nonda.validation-webx3-0.1.2.jar
normandy.client-1.0.0.mon-1.0.0.jar
objectweb.asm-0.0.0.jar
objectweb.asm.attrs-0.0.0.jar
mons-1.0.0-531-24.jar
offer.api.core-1.0.0-619-53.jar
offer.api.query-1.0.0-556-53.jar
offer.enums-1.0.0-329-48.jar
offer.shared.codes-1.0.0-349-38.jar
opensymphony.oscache-0.0.0.jar
opensymphony.quartz-1.6.1.jar
oracle.berkeleydb-3.2.76-patch.jar
org.slf4j.jcl-over-slf4j-1.5.6.jar
org.slf4j.jcl104-over-slf4j-1.5.6.jar
org.slf4j.slf4j-api-1.5.6.jar
org.slf4j.slf4j-log4j12-1.5.2.jar
pc2.client.agent-1.2.5.mon-1.2.5.jar
pivot.dal.offer-1.2-022-70.jar
searchad.searchengine-2.5-401-38.jar
server.jetty.jetty-core-6.1.21.jar
server.jetty.jetty-util-6.1.21.jar
sourceforge.c3p0-0.9.1.jar
sourceforge.c3p0.oracle-0.9.1.jar
sourceforge.cglib-nodep-2.1_3.jar
sourceforge.freemarker-2.3.15.jar
sourceforge.ibatis-2.3.0.jar
sourceforge.jaxen-1.1.jar
sourceforge.jline-0.9.94.jar
sourceforge.pinyin4j-2.5.0.jar
sourceforge.saxpath-1.0.jar
sourceforge.spring-2.5.6.jar
sourceforge.spring.modules.beans-2.5.6.SEC02.jar
sourceforge.spring.modules.core-2.5.6.SEC02.jar
sourceforge.spring.modules.webmvc-2.5.6.SEC02.jar
sourceforge.spring.weaving.aspects-2.5.4.jar
tagclient-1.0.0-856-2.jar
tagcommon-1.0.0-809-2.jar
test.junit-3.8.1.jar
test.objenesis-1.0.jar
mand-1.0.mon.collection-1.0.mon.configuration-1.0.mon.convert-1.0.mon.expression-1.0.mon.lang-1.0.mon.logging-1.0.mon.regexp-1.0.mon.resourcebundle-1.0.jar
toolkit.sandbox.shy2-0.1.jar
toolkit.service.form-1.0.jar
toolkit.service.framework-1.0.jar
toolkit.service.freemarker-1.0.jar
toolkit.service.jsp-1.0.jar
toolkit.service.localization-1.0.jar
toolkit.service.mail-1.0.jar
toolkit.service.mimetype-1.0.jar
toolkit.service.naming-1.0.jar
toolkit.service.pipeline-1.0.jar
toolkit.service.pool-1.0.jar
toolkit.service.pull-1.0.jar
toolkit.service.resource-1.0.jar
toolkit.service.rundata-1.0.jar
toolkit.service.spring-1.0.jar
toolkit.service.template-1.0.jar
toolkit.service.threadcontext-1.0.jar
toolkit.service.upload-1.0.jar
toolkit.service.uribroker-1.0.jar
toolkit.service.velocity-1.0.jar
toolkit.webx.framework-2.0.jar
toolkit.webx.request-2.0.jar
toolkit.webx.turbine-2.0.jar
toolkit.webx.turbine.tld-2.0.jar
webx2-2.0.1.pat-3.0.6.jar
webx3.core-3.0.6.jar
webx3.extension.migration.china-1.0-453-1.jar
webx3.extension.rpc-0.2.6.jar
whalin.memcached-0.0.0.jar
mon-1.0-917-5.jar
work_shared.dal-1.0-958-10.jar
work_shared.service-1.0-004-9.jar
xml.apis-1.0.b2.jar
xml.apis.css-1.3.mons-resolver-0.0.0.jar
xml.dom4j-1.6.1.jar
xml.jox-0.0.0.jar
xml.jox__dtdparser-1.13.jar-0.0.0.jar
xml.jox__jox-1.16.jar-0.0.0.jar
xml.nekohtml-1.9.9.jar
xml.xerces-0.0.0.jar
xml.xmlgraphics-1.7.jar
xml.xmlgraphics__batik-css-1.7.jar-1.7.jar
xml.xmlgraphics__batik-util-1.6-1.jar-1.7.jar
xml.xpp3-1.1.4c.jar
xml.xstream-1.3.1.jar
zk.zkclient-0.1.0.jar
&从这里看出来就是jar包名称的字母序的顺序。
从jar里面解析出class类看下:JarFileResource
/* ------------------------------------------------------------ */
public synchronized String[] list()
if(isDirectory() && _list==null)
ArrayList list = new ArrayList(32);
checkConnection();
JarFile jarFile=_jarF
if(jarFile==null)
JarURLConnection jc=(JarURLConnection)((new URL(_jarUrl)).openConnection());
jc.setUseCaches(getUseCaches());
jarFile=jc.getJarFile();
catch(Exception e)
Log.ignore(e);
Enumeration e=jarFile.entries();
String dir=_urlString.substring(_urlString.indexOf(&!/&)+2);
while(e.hasMoreElements())
JarEntry entry = (JarEntry) e.nextElement();
String name=entry.getName().replace('\\','/');
if(!name.startsWith(dir) || name.length()==dir.length())
String listName=name.substring(dir.length());
int dash=listName.indexOf('/');
if (dash&=0)
//when listing jar:file urls, you get back one
//entry for the dir itself, which we ignore
if (dash==0 && listName.length()==1)
//when listing jar:file urls, all files and
//subdirs have a leading /, which we remove
if (dash==0)
listName=listName.substring(dash+1, listName.length());
listName=listName.substring(0,dash+1);
if (list.contains(listName))
list.add(listName);
_list=new String[list.size()];
list.toArray(_list);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:769638次
积分:10539
积分:10539
排名:第967名
原创:263篇
转载:11篇
评论:132条
(1)(1)(2)(2)(2)(1)(1)(2)(1)(36)(13)(11)(7)(1)(10)(12)(14)(1)(11)(14)(9)(41)(20)(1)(1)(2)(1)(6)(2)(10)(15)(4)(8)(10)(7)弱弱的问下在android下导入httpclient4.jar冲突如何解决? - 开源中国社区
当前访客身份:游客 [
当前位置:
弱弱的问下在android下导入httpclient4.jar冲突如何解决?
最近刚开始写android,虽然java用了N年...
但发现android.jar也有httpclient的class,我放入httpclient4.jar(最新版4.24)后,引入的都是android自己的类,很多方法都找不到,囧啊~
先别说httpclient3.jar,我就想用httpclient4...当然如果用不成的话...我在换...
貌似是说和android的版本有关?我选的比较低android 2.3.3...有人说高版本自带httpclient4.
共有9个答案
<span class="a_vote_num" id="a_vote_num_
更改本地classpath 的顺序可行么?放到手机上还认么...
<span class="a_vote_num" id="a_vote_num_
真悲剧,改了classpath的顺序后,本地main通过,放到手机上依然冲突.哇嘎嘎,和我想的一样.看来...还用不成了哎.
<span class="a_vote_num" id="a_vote_num_
应该可以用,导入
httpclient4源码,更改下包名即可!
--- 共有 1 条评论 ---
我也想过这个方法~吼吼.以后替换这个jar就麻烦了.
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
有木有好的解决办法??我于是又这个问题,android自带的httpclient获取的东西会出现问题,只有阿帕奇的可以用,这让我如何是好
<span class="a_vote_num" id="a_vote_num_
楼上的朋友,你是如何解决Httpclient冲突的?难道真是改一下httpclient的包名?
<span class="a_vote_num" id="a_vote_num_
使用 开源中国 android app 里的吧,他们那个版本的没有冲突.
<span class="a_vote_num" id="a_vote_num_
这个问题怎么解决啊
<span class="a_vote_num" id="a_vote_num_
有没有人彻底解决了??
--- 共有 3 条评论 ---
: 你好,做消费金融?我是做开发的,没关系的
(1年前)&nbsp&
加我微信啊我是做互联网消费金融的,微信号bentlyeban
(1年前)&nbsp&
官方已经出httpclient for android了.
(1年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
引用来自“benben_002”的评论有没有人彻底解决了??回复
: 是推出android版的,android也是httpclient,这个和手机里的sdk里的httpclient冲突,也就是程序运行的时候,会自动运行sdk里的,而不会运行你所添加的,不知道怎么才能指定让sdk知道运行正确的httoclient,网上有说用android studio可以,我试了,不好用,可能是as我用的不明白,我现在用的eclipse,不好使,没办法,只能不用官方推荐的httpclient
更多开发者职位上
有什么技术问题吗?
loyal的其它问题
类似的话题JAVA(27)
转载请注明来源:
前言说明:当前我的工程中使用的httpclient-4.3.6.jar和httpcore-4.3.3.jar版本的包。
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpcore&/artifactId&
&version&4.3.3&/version&
&/dependency&
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpclient&/artifactId&
&version&4.3.6&/version&
&/dependency&
今天执行阿里云的OSS相关操作时,首先提示以下异常:
java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
详细如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy
at com.aliyun.oss.OSSClient.&init&(OSSClient.java:246)
at com.aliyun.oss.OSSClient.&init&(OSSClient.java:206)
at com.autonavi.oss.client.DefaultOSSClient.&clinit&(DefaultOSSClient.java:12)
at com.autonavi.oss.put.Upload.put(Upload.java:20)
at com.autonavi.oss.put.Upload.main(Upload.java:58)
Caused by: java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 5 more
从上面报错提示可以看出,是org/apache/http/ssl/TrustStrategy下面找不到TrustStrategy这个类,我查了下依赖中的httpclient-4.3.6.jar和httpcore-4.3.3.jar两个包,均没有这个类。
而4.4版本中有ssl路径:
及对应org/apache/http/ssl/TrustStrategy方法。
很明显是版本不对,应该换成新版本。
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpcore&/artifactId&
&version&4.4&/version&
&/dependency&
重新执行代码,上面异常已经消失,不过出现新异常:
java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier
异常详细:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier
at com.m.DefaultServiceClient.createHttpClientConnectionManager(DefaultServiceClient.java:230)
at com.m.DefaultServiceClient.&init&(DefaultServiceClient.java:78)
at com.aliyun.oss.OSSClient.&init&(OSSClient.java:246)
at com.aliyun.oss.OSSClient.&init&(OSSClient.java:206)
at com.autonavi.oss.client.DefaultOSSClient.&clinit&(DefaultOSSClient.java:12)
at com.autonavi.oss.put.Upload.put(Upload.java:20)
at com.autonavi.oss.put.Upload.main(Upload.java:58)
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.ssl.NoopHostnameVerifier
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 7 more
很明显是版本不对,是由于httpclient-4.3.6.jar缺少NoopHostnameVerifier方法:
而4.4版本中有这个方法:
应该换成新版本,即换成httpclient-4.4.jar
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpclient&/artifactId&
&version&4.4&/version&
&/dependency&
查看下jar包中相应路径存在上面那个类。
最后再次执行,执行成功,无异常!
所以,下次碰到以下两个异常时:
java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier
需要升级httpclient.jar和httpcore.jar两个包的版本,4.3的版本中不含有上述两个类,需要同时升级到4.4版本。
即替换为httpclient-4.4.jar和httpcore-4.4.jar
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28136次
排名:千里之外
原创:68篇
评论:12条
(6)(4)(4)(6)(4)(34)(14)}

我要回帖

更多关于 fastjson api 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信