简体   繁体   English

FitNesse的Maven依赖项'NoClassDefFoundError'

[英]'NoClassDefFoundError' for Maven dependency with FitNesse

I'm using FitNesse Slim to do some simple POST/GET requests. 我正在使用FitNesse Slim进行一些简单的POST / GET请求。 I'm using Maven as my dependency management system. 我正在使用Maven作为我的依赖项管理系统。

I get the following error message when I try to run my Fixture. 当我尝试运行我的装置时,出现以下错误消息。

__EXCEPTION__:java.lang.NoClassDefFoundError: org/apache/http/HttpEntity
    at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_76]
    at java.lang.Class.forName(Class.java:191) [rt.jar:1.7.0_76]
    at fitnesse.slim.SlimExecutionContext.getClass(SlimExecutionContext.java:128) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimExecutionContext.searchPathsForClass(SlimExecutionContext.java:118) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimExecutionContext.createInstanceOfConstructor(SlimExecutionContext.java:89) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimExecutionContext.create(SlimExecutionContext.java:43) [fitnesse-20150226.jar]
    at fitnesse.slim.StatementExecutor.create(StatementExecutor.java:77) [fitnesse-20150226.jar]
    at fitnesse.slim.instructions.MakeInstruction.executeInternal(MakeInstruction.java:26) [fitnesse-20150226.jar]
    at fitnesse.slim.instructions.Instruction.execute(Instruction.java:30) [fitnesse-20150226.jar]
    at fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-20150226.jar]
    at fitnesse.slim.ListExecutor$Executive.executeStatements(ListExecutor.java:43) [fitnesse-20150226.jar]
    at fitnesse.slim.ListExecutor.execute(ListExecutor.java:83) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:87) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:80) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:59) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.serve(SlimServer.java:45) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.handle(SlimService.java:184) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.acceptOne(SlimService.java:192) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.accept(SlimService.java:154) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.startWithFactory(SlimService.java:75) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.main(SlimService.java:56) [fitnesse-20150226.jar]
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) [rt.jar:1.7.0_76]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) [rt.jar:1.7.0_76]
    at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_76]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) [rt.jar:1.7.0_76]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) [rt.jar:1.7.0_76]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) [rt.jar:1.7.0_76]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) [rt.jar:1.7.0_76]
    at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_76]
    at java.lang.Class.forName(Class.java:191) [rt.jar:1.7.0_76]
    at fitnesse.slim.SlimExecutionContext.getClass(SlimExecutionContext.java:128) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimExecutionContext.searchPathsForClass(SlimExecutionContext.java:118) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimExecutionContext.createInstanceOfConstructor(SlimExecutionContext.java:89) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimExecutionContext.create(SlimExecutionContext.java:43) [fitnesse-20150226.jar]
    at fitnesse.slim.StatementExecutor.create(StatementExecutor.java:77) [fitnesse-20150226.jar]
    at fitnesse.slim.instructions.MakeInstruction.executeInternal(MakeInstruction.java:26) [fitnesse-20150226.jar]
    at fitnesse.slim.instructions.Instruction.execute(Instruction.java:30) [fitnesse-20150226.jar]
    at fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-20150226.jar]
    at fitnesse.slim.ListExecutor$Executive.executeStatements(ListExecutor.java:43) [fitnesse-20150226.jar]
    at fitnesse.slim.ListExecutor.execute(ListExecutor.java:83) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:87) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:80) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:59) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimServer.serve(SlimServer.java:45) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.handle(SlimService.java:184) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.acceptOne(SlimService.java:192) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.accept(SlimService.java:154) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.startWithFactory(SlimService.java:75) [fitnesse-20150226.jar]
    at fitnesse.slim.SlimService.main(SlimService.java:56) [fitnesse-20150226.jar]

I'm assuming it's because I'm not properly setting the Maven repository so that FitNesse can find the HttpEntity class/jar file. 我假设这是因为我没有正确设置Maven存储库,以便FitNesse可以找到HttpEntity类/ jar文件。

How do I go about doing this? 我该怎么做呢?

My Suite wiki page looks like this: 我的Suite Wiki页面如下所示:

!define TEST_SYSTEM {slim}

!path target/classes
!path /home/foobar/.m2/repository

>FoobarFitnesse

And my Test page looks like this: 我的“测试”页面如下所示:

|import  |
|mypackagename|


!|SimpleFoobarFixture                                                                |
|baseUrl                      |appId      |utterance                     |commandName|
|abc.123.com|some-app-id|What is the weather in San Diego|Forecast   |

Maven is local dependency repository, but it's not related to the classpath. Maven是本地依赖项存储库,但与类路径无关。

The class org.apache.http.HttpEntity is not found on runtime classpath. 在运行时类路径上找不到类org.apache.http.HttpEntity You need to add a library containing the class on runtime classpath. 您需要在运行时类路径上添加一个包含该类的库。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM