Apache内部的HttpClient寻找JBoss参考?

时间:2012-04-30 01:51:20

标签: apache jboss jar pojo apache-httpclient-4.x

我正在使用Apache HttpClient库来处理与API的通信。当我对爆炸代码进行单元测试时,我的所有代码都会编译并运行而没有错误。但是,当我JAR我的源代码并在隔离的集成测试中测试代码时,我得到了这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/logmanager/Logger$AttachmentKey
    at org.slf4j.impl.Slf4jLoggerFactory.<clinit>(Slf4jLoggerFactory.java:31)
    at org.slf4j.impl.StaticLoggerBinder.getLoggerFactory(StaticLoggerBinder.java:33)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:240)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:208)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
    at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:159)
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:178)
    at opart.api.client.trasnsport.Transport.get(Transport.java:81)
    at opart.api.client.dao.objects.ObjectsDao.getInterestingObjects(ObjectsDao.java:70)
    at opart.api.client.OpartApiClient.getInterestingObjects(OpartApiClient.java:79)
    at ApiTest.interesting(ApiTest.java:32)
    at ApiTest.main(ApiTest.java:21)
Caused by: java.lang.ClassNotFoundException: org.jboss.logmanager.Logger$AttachmentKey
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    ... 14 more

当我尝试实例化DefaultHttpClient对象时:

DefaultHttpClient defaultHttpClient = new DefaultHttpClient();

我在JAR中包含的库是:

  • guava-r09.jar
  • commons-logging-1.1.1.jar
  • httpclient-4.1.2.jar
  • httpcore-4.1.2.jar
  • GSON-1.7.1.jar

有关为何尝试引用JBoss的任何想法?

1 个答案:

答案 0 :(得分:1)

我找到的解决方案是使用zipfileset ant目标,它可以安全地爆炸超级JAR根目录中JARchives的内容。