0

我已经开始了fitnesse rest api testing。我才3天大。我能够继续运行localhost 80。但它对我来说几乎没有错误,几乎没有jar文件丢失。

我仍然低于错误。

我添加的 jar 列表:

  1. httpclient-4.0.jar
  2. log4j-1.2.16.jar
  3. slf4j-api-1.7.12.jar
  4. slf4j-simple-1.7.12.jar
  5. smartrics-RestClient-2.1.jar
  6. xstream-1.4.8.jar
  7. xuggle-xuggler-5.4.jar
__EXCEPTION__:java.lang.NoClassDefFoundError: org/apache/commons/httpclient/Credentials
        at smartrics.rest.fitnesse.fixture.PartsFactory.buildRestClient(PartsFactory.java:61) [smartrics-RestFixture-4.0.jar]
        at smartrics.rest.fitnesse.fixture.RestFixture.configRestClient(RestFixture.java:1167) [smartrics-RestFixture-4.0.jar]
        at smartrics.rest.fitnesse.fixture.RestFixture.initialize(RestFixture.java:873) [smartrics-RestFixture-4.0.jar]
        at smartrics.rest.fitnesse.fixture.RestFixture.doTable(RestFixture.java:385) [smartrics-RestFixture-4.0.jar]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_45]
        at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.8.0_45]
        at fitnesse.slim.fixtureInteraction.DefaultInteraction.methodInvoke(DefaultInteraction.java:80) [fitnesse-standalone.jar]
        at fitnesse.slim.MethodExecutor.callMethod(MethodExecutor.java:44) [fitnesse-standalone.jar]
        at fitnesse.slim.MethodExecutor.invokeMethod(MethodExecutor.java:31) [fitnesse-standalone.jar]
        at fitnesse.slim.MethodExecutor.findAndInvoke(MethodExecutor.java:57) [fitnesse-standalone.jar]
        at fitnesse.slim.FixtureMethodExecutor.execute(FixtureMethodExecutor.java:20) [fitnesse-standalone.jar]
        at fitnesse.slim.StatementExecutor.getMethodExecutionResult(StatementExecutor.java:126) [fitnesse-standalone.jar]
        at fitnesse.slim.StatementExecutor.call(StatementExecutor.java:104) [fitnesse-standalone.jar]
        at fitnesse.slim.instructions.CallInstruction.executeInternal(CallInstruction.java:35) [fitnesse-standalone.jar]
        at fitnesse.slim.instructions.Instruction.execute(Instruction.java:29) [fitnesse-standalone.jar]
        at fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-standalone.jar]
        at fitnesse.slim.ListExecutor$Executive.executeStatements(ListExecutor.java:43) [fitnesse-standalone.jar]
        at fitnesse.slim.ListExecutor.execute(ListExecutor.java:83) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:84) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:77) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:56) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.serve(SlimServer.java:42) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.handle(SlimService.java:186) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.acceptOne(SlimService.java:194) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.accept(SlimService.java:156) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.startWithFactory(SlimService.java:77) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.main(SlimService.java:57) [fitnesse-standalone.jar]
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.Credentials
        at java.net.URLClassLoader.findClass(Unknown Source) [rt.jar:1.8.0_45]
        at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.8.0_45]
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) [rt.jar:1.8.0_45]
        at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.8.0_45]
        at smartrics.rest.fitnesse.fixture.PartsFactory.buildRestClient(PartsFactory.java:61) [smartrics-RestFixture-4.0.jar]
        at smartrics.rest.fitnesse.fixture.RestFixture.configRestClient(RestFixture.java:1167) [smartrics-RestFixture-4.0.jar]
        at smartrics.rest.fitnesse.fixture.RestFixture.initialize(RestFixture.java:873) [smartrics-RestFixture-4.0.jar]
        at smartrics.rest.fitnesse.fixture.RestFixture.doTable(RestFixture.java:385) [smartrics-RestFixture-4.0.jar]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_45]
        at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.8.0_45]
        at fitnesse.slim.fixtureInteraction.DefaultInteraction.methodInvoke(DefaultInteraction.java:80) [fitnesse-standalone.jar]
        at fitnesse.slim.MethodExecutor.callMethod(MethodExecutor.java:44) [fitnesse-standalone.jar]
        at fitnesse.slim.MethodExecutor.invokeMethod(MethodExecutor.java:31) [fitnesse-standalone.jar]
        at fitnesse.slim.MethodExecutor.findAndInvoke(MethodExecutor.java:57) [fitnesse-standalone.jar]
        at fitnesse.slim.FixtureMethodExecutor.execute(FixtureMethodExecutor.java:20) [fitnesse-standalone.jar]
        at fitnesse.slim.StatementExecutor.getMethodExecutionResult(StatementExecutor.java:126) [fitnesse-standalone.jar]
        at fitnesse.slim.StatementExecutor.call(StatementExecutor.java:104) [fitnesse-standalone.jar]
        at fitnesse.slim.instructions.CallInstruction.executeInternal(CallInstruction.java:35) [fitnesse-standalone.jar]
        at fitnesse.slim.instructions.Instruction.execute(Instruction.java:29) [fitnesse-standalone.jar]
        at fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-standalone.jar]
        at fitnesse.slim.ListExecutor$Executive.executeStatements(ListExecutor.java:43) [fitnesse-standalone.jar]
        at fitnesse.slim.ListExecutor.execute(ListExecutor.java:83) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:84) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:77) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:56) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimServer.serve(SlimServer.java:42) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.handle(SlimService.java:186) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.acceptOne(SlimService.java:194) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.accept(SlimService.java:156) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.startWithFactory(SlimService.java:77) [fitnesse-standalone.jar]
        at fitnesse.slim.SlimService.main(SlimService.java:57) [fitnesse-standalone.jar]
4

1 回答 1

0

RestFixture 依赖于 - 因为它是与被测系统的 HTTP 交互 - 依赖于 RestClient ( https://github.com/smartrics/RestClient ),而后者又依赖于 Apache HTTP Client 3.1 ( http://hc.apache.org/httpclient -3.x/ )。

您看到的异常是由添加到您的类路径“ httpclient-4.0.jar”(不包含缺少的类)引起的。

您可以通过添加 RestFixture 包smartrics-RestFixture-4.0-bin.zip中提供的所有 jar 来解决问题(并避免任何其他类未找到问题),例如可从http://repo1.maven.org/maven2/smartrics/restfixture/smartrics-RestFixture/4.0/

于 2015-09-03T11:10:25.047 回答