gpt4 book ai didi

Jersey 2.0-m2 中的 JSON 支持

转载 作者:行者123 更新时间:2023-12-03 06:05:02 24 4
gpt4 key购买 nike

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

尝试开发一个独立的 jersey-JSON-应用程序,我从最新的 mvn 原型(prototype)开始

    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 资源上使用 @Produces({ MediaType.APPLICATION_JSON}) 注释。在“引用库”中,我看到四个 jackson 库。在新项目中我没有看到任何 jackson 库。这是因为依赖关系没有正确解决吗?或者 jersey-2.0 不再使用 Jackson 了?

感谢任何帮助。

最佳答案

主类中的注释似乎完全具有误导性,因为:

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

无论如何,您仍然可以在 Jersey 2.0 中使用 Jackson。只需包含对 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);

关于Jersey 2.0-m2 中的 JSON 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15024718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com