3

(我在 Stackoverflow 上的第一篇文章,是 Maven 和 Jersey 的新手 ;-)

尝试开发一个独立的 jersey-JSON-application,我从最新的 mvn 原型开始

    mvn archetype:generate org.glassfish.jersey.archetypes:jersey-quickstart-grizzly2

默认情况下,没有 JSON 支持。我设法在 Eclipse 中导入并运行它,然后看到“知道了!” 我的浏览器中的页面。JSON 支持可以(?)通过在 pom.xml 和 Main.java 中取消注释行来激活。因此,在使用 maven 生成的新项目中,我在 pom.xml 中激活了以下依赖项:

     <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>${jersey-version}</version>
    </dependency>

...然后使用 mvn eclipse:eclipse 导入 Eclipse。然后在 Eclipse 中,编辑 Main.java 并取消注释以下行:

    rc.addBinder(org.glassfish.jersey.media.json.JsonJaxbBinder);

这会导致以下编译错误:“org.glassfish.jersey.media 无法解析为变量”。

然后我被卡住了。我哪里做错了 ?

另外我想了解“JSON支持”是什么意思?在我基于 jersey-1.17 的程序的早期版本中,我设法在我的 Rest-resource 上使用 @Produces({ MediaType.APPLICATION_JSON}) 注释。在“引用库”中,我看到了四个杰克逊库。在新项目中,我没有看到任何杰克逊库。那是因为没有正确解决依赖关系吗?还是 jersey-2.0 不再使用 Jackson ?

任何帮助表示赞赏。

4

1 回答 1

0

Main 类中的评论似乎完全具有误导性,因为:

  • jersey-media-moxy 不包括 org.glassfish.jersey.media.json.JsonJaxbBinder 类
  • ResourceConfig 没有 addBinder 方法(至少在当前 2.0-rc1 版本中)

无论如何,您仍然可以将 Jackson 与 Jersey 2.0 一起使用。只需包含对 jackson-jaxrs-json-provider 的依赖项:

<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-json-provider</artifactId>
    <version>2.2.0</version>
</dependency>

并注册 JacksonJaxbJsonProvider:

rc.register(JacksonJaxbJsonProvider.class);
于 2013-05-29T12:49:27.077 回答