REST Assured:NoSuchMethodError org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType

时间:2014-01-10 20:23:19

标签: ivy rest-assured

我有一个REST Assured在我们的一个JAR项目中工作。现在我正在尝试在WAR项目中添加类似的测试类。

我在WAR项目中添加了REST Assured:

<dependency conf="test->default" org="com.jayway.restassured"
    name="rest-assured" rev="1.8.1"/>

我在测试类路径上也有ASM(asm-4.0asm-analysis-4.0asm-commons-4.0asm-tree-4.0asm-util-4.0);提到这一点,因为我的问题的唯一搜索结果表明与ASM的关系。

当我运行测试时,它会出现以下错误:

java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    at com.jayway.restassured.internal.ResponseParserRegistrar.<init>(ResponseParserRegistrar.groovy)
    at com.mycompany.testSomething(SomethingTest.java:50)

我已将测试最小化到以下内容:

@Test
public void testSomething() {
    ResponseParserRegistrar r = new ResponseParserRegistrar();
}

显然我没有直接需要创建ResponseParserRegistrar,但这就是REST Assured所做的事情,当我使用REST Assured时失败了。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

查看https://code.google.com/p/rest-assured/wiki/FAQ上的常见问题解答#2,它可以解决您的类路径问题。另外我鼓励你升级到更新的版本,因为1.8.1真的很旧。

答案 1 :(得分:0)

服务器可能无法读取您的方法,否则将需要一些参数。

当程序尝试调用不存在的类方法时,抛出NoSuchMethodError。该方法可以是静态的,也可以是实例方法