Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在ClientConfig上注册JacksonFeature_Java_Rest_Jersey_Jackson - Fatal编程技术网

Java 如何在ClientConfig上注册JacksonFeature

Java 如何在ClientConfig上注册JacksonFeature,java,rest,jersey,jackson,Java,Rest,Jersey,Jackson,如何使用jackson在resfull java项目上返回JSON 在关于用java创建rest项目的文章(8.4.Create a client)之后,它说返回json的过程如下: public class TodoTest { public static void main(String[] args) { ClientConfig config = new new ClientConfig().register(JacksonFeature.class); Clien

如何使用jackson在resfull java项目上返回JSON

在关于用java创建rest项目的文章(8.4.Create a client)之后,它说返回json的过程如下:

public class TodoTest {

  public static void main(String[] args) {
    ClientConfig config = new new ClientConfig().register(JacksonFeature.class);
    Client client = ClientBuilder.newClient(config);

    WebTarget target = client.target(getBaseURI());
    System.out.println(target.path("rest").path("todo").request()
        .accept(MediaType.APPLICATION_JSON).get(String.class));
  }

  private static URI getBaseURI() {
    return UriBuilder.fromUri("http://localhost:8080_com.vogella.jersey.jaxb").build();
  }
} 

@XmlRootElement
public class Todo {
    private String id;
    private String summary;
    private String description;
    //getter/setter
}
但是JacksonFeature.class不在Jackson.jar中。 我正在使用

jackson-annotations-2.8.2.jar
jackson-core-2.8.2.jar
jackson-databind-2.8.2.jar
jackson-jaxrs-base-2.8.2.jar
jackson-jaxrs-json-provider-2.8.2.jar
jackson-module-jaxb-annotations-2.8.2.jar

我如何解决它?

org.glassfish.jersey.jackson.JacksonFeature中的JacksonFeature

必要的

jersey-media-json-jackson-2.23.2.jar
jersey-entity-filtering-2.23.2.jar

JacksonFeature
来自Jersey库集(Maven中的Jersey media json jackson工件),而不是jackson。见文件。这是告诉Jersey“请使用Jackson库进行JSON解析和序列化”的一种方式,而不是Jackson的一部分

看来这只是让泽西队使用杰克逊的方法之一。声明在pom.XML中放置以下XML足以让Jersey使用Jackson。它还表明,这是一种更好的方法,Jersey文档可能错误地鼓励使用
JacksonFeature.class
。链接文章还建议您不要使用jersey media json jackson

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-json-provider</artifactId>
    <version>${jackson.version}</version>
</dependency>

com.fasterxml.jackson.core
杰克逊数据绑定
${jackson.version}
com.fasterxml.jackson.jaxrs
jackson jaxrs json提供程序
${jackson.version}

通过Gradle构建项目并添加以下依赖项:
编译“org.glassfish.jersey.media:jersey media json jackson:2.25.1”

我会添加更多喜欢的内容。。。因为在整个互联网上,我在这里找到了我的解决方案。。。。