我选择了Jersey Test Framework来实现REST服务的单元测试用例。但是当我运行测试时,我遇到了以下问题。无法在Jersey测试框架中找到内容类型为application/json的邮件正文阅读器
注:我甚至将resteasy-jackson-provider
添加到pom文件,但没有帮助。
这里是.pom
文件相关
<!-- jersey security dependency -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- jersey test framework dependency -->
<dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-jetty</artifactId>
<version>${jersey.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>2.3.4.Final</version>
</dependency>
<!--junit Dependency-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
MockServices.Java
@Path("/hello")
public class MockServices {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/world")
public DateVO getHello() {
DateVO j=new DateVO();
j.setActive(true);
return j;
}
}
MockServicesTest.Java
public class MockServicesTest extends JerseyTest {
@Override
protected Application configure() {
return new ResourceConfig(MockServices.class);
}
@Test
public void test() {
Response hello = target("/hello/world").request().get();
System.out.println(hello.readEntity(String.class));//throw an above exception
}
}
请让我知道我该如何克服这个问题。
谢谢,但没有奏效。 – gihan