没有为media type = application / json找到MessageBodyWriter,添加了Jakson依赖仍然发出persisit

时间:2016-09-12 08:47:17

标签: json web-services rest maven pom.xml

我正在创建restful webservice,我正在尝试获取json响应但是找不到Message writer异常。在Jersey网站中,提到了对应用程序/ JSON使用Jakson依赖,所以我使用它仍然得到相同的错误。对于响应类型application / xml,它工作正常。 这些是POM中可用的依赖项,仍然没有找到Message writer异常。任何人都可以帮忙 -

 <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.2</version>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.test-framework.providers</groupId>
            <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
            <version>2.2</version>
        </dependency>
public class UserServiceTest extends JerseyTest {

@Override
 protected Application configure(){
    ResourceConfig resourceConfig=new ResourceConfig(UserService.class);
     return resourceConfig;
 }
@Test
public void test(){
    String output=target("/users/test").request().get(String.class);
    System.out.println(output);
    //assertEquals("abc",output);
    Assert.assertEquals("abc",output);
}

}

1 个答案:

答案 0 :(得分:1)

在Jersey 2.9之前,您需要注册JacksonFeature(之后,它会自动注册)。在您的情况下,只需使用ResourceConfig

进行注册
resourceConfig.register(JacksonFeature.class)

ResourceConfig仅用于配置服务器端。对于客户端,您可以注册该功能,如

@Override
public void configureClient(ClientConfig config) {
    config.register(JacksonFeature.class)l
}

JerseyTest