0

I have started fitnesse rest api testing. I am only 3 days old to it. I am able to run on localhost 80. But it showed few error to me, there were few jar files missing.

I am still getting below error.

List of jar I have added:

  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]
Matthias A. Eckhart
  • 4,988
  • 3
  • 22
  • 32
paul
  • 3,639
  • 13
  • 53
  • 106
  • paul, did you configure build path perfectly with your IDE? – Viral Shah Jun 28 '15 at 07:46
  • I am not using any IDE. I open `fitnesse-standalone.jar` in `cmd`. It gives `fitnesse` front page on `localhost`, from there I click `Test` and tests runs. – paul Jun 28 '15 at 07:52

1 Answers1

0

RestFixture depends - for it's HTTP interactions with the System under test - on RestClient (https://github.com/smartrics/RestClient), which in turns depends on Apache HTTP Client 3.1 (http://hc.apache.org/httpclient-3.x/).

The exception you see is caused by having added to your classpath "httpclient-4.0.jar" (which doesn't contain the missing class).

You can fix the problem (and avoid any other class not found issue) by adding all jars provided in the RestFixture bundle smartrics-RestFixture-4.0-bin.zip for example available from http://repo1.maven.org/maven2/smartrics/restfixture/smartrics-RestFixture/4.0/

smartrics
  • 296
  • 1
  • 6