1

试图建立一个 hello world jersey 测试。https://jersey.java.net/documentation/2.5.1/test-framework.html让它看起来很简单,但是当按照文档覆盖配置方法时不起作用。

从文档

package api;

import static org.junit.Assert.assertEquals;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;

import org.junit.Test;

import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.core.ResourceConfig;
import com.sun.jersey.test.framework.JerseyTest;
import com.sun.jersey.test.framework.WebAppDescriptor;

public class JerseyTester extends JerseyTest {

@Path("hello")
public static class HelloResource {
    @GET
    public String getHello() {
        return "Hello World!";
    }
}


@Override
protected Application configure() {
    return new ResourceConfig(HelloResource.class);
}

@Test
public void testHelloWorld() {
    WebResource webResource = resource();
    String responseMsg = webResource.path("helloworld").get(String.class);
    assertEquals("Hello World", responseMsg);
}

}

问题是配置方法覆盖不起作用 - 我收到错误:“返回类型与 JerseyTest.configure() 不兼容”。我还收到错误消息:“无法实例化类型 ResourceConfig” - 当文档明确表示要实例化它时怎么会这样?!

这是非常基本的,我不知道为什么它不起作用。我只是想测试一个简单的 jane jersey 端点。

这是我的依赖项:

dependencies {
compile 'javax.ws.rs:jsr311-api:1.1.1'

compile 'com.sun.jersey:jersey-server:1.19'
compile 'com.sun.jersey:jersey-core:1.19'
compile 'com.sun.jersey:jersey-client:1.19'
compile 'com.sun.jersey:jersey-servlet:1.19'
compile 'com.sun.jersey:jersey-json:1.19'

compile 'com.yammer.metrics:metrics-core:2.2.0'
compile 'com.yammer.metrics:metrics-servlet:2.2.0'
compile 'com.yammer.metrics:metrics-jersey:2.2.0'
compile 'com.yammer.metrics:metrics-graphite:2.2.0'

compile 'log4j:log4j:1.2.16'

testCompile 'junit:junit-dep:4.10'
testCompile 'com.sun.jersey.jersey-test-framework:jersey-test-framework-grizzly2:1.19'
testCompile 'org.slf4j:slf4j-simple:1.6.1'
}
4

1 回答 1

0

是的,您正在查看错误的文档。您正在查看的文档适用于 Jersey 2.x。但是您使用的是 Jersey 1.x。您可以查看1.x的文档,但那里没有太多内容。最好的办法是查看示例的源代码测试您还可以在此答案的底部看到另一个示例

于 2015-10-23T12:49:07.490 回答