尝试测试Jersey Web服务时出错
java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
Caused by: java.lang.ClassNotFoundException: groovy.lang.GroovyObject
。
import static com.jayway.restassured.RestAssured.expect;
import static com.jayway.restassured.RestAssured.get;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.nullValue;
import org.junit.Test;
public class SimpleTest {
@Test
public void testUserFetchesSuccess() {
expect().
body("id", equalTo("1")).
when().
get("/service");
}
}
这是什么意思?怎么解决?
更新
我下载并安装了groovy-all。现在我得到:
java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
at com.jayway.restassured.internal.ResponseParserRegistrar.<init>(ResponseParserRegistrar.groovy)
at com.jayway.restassured.RestAssured.<clinit>(RestAssured.java:346)
at SimpleTest.testUserFetchesSuccess(SimpleTest.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.typehandling.ShortTypeHandling
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)
... 24 more
4条答案
按热度按时间vcirk6k61#
下载
groovy-all.jar
并将其添加到类路径中。使用Maven,将以下内容添加到依赖项(browse groovy-all on mvnrepository.com)中:
wko9yo5t2#
我也面临着同样的问题,令人惊讶的是,我正在与RestAssured合作。我挣扎了一整天才解决这个问题。
我更新了maven的groovy-all(版本3.0.0-beta-1)依赖项,使用了最新的依赖项,效果非常好,我已经在pom.xml的顶部添加了这个依赖项。希望这对一些人有帮助:)
bxpogfeg3#
转到ireport并选择工具,然后选择选项-〉ireport -〉选择语言为java
kpbpu0084#
也许您需要在类的上方使用注解来定义runner?
在我的情况下