(我在Stackoverflow上的第一篇文章,maven和Jersey的新内容; - )
尝试开发一个独立的jersey-JSON应用程序,我从最新的mvn原型开始
mvn archetype:generate org.glassfish.jersey.archetypes:jersey-quickstart-grizzly2
这是默认情况下没有JSON支持。我设法在Eclipse中导入并运行它,看看“搞定了!”我浏览器中的页面。 JSON-Support可以通过在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})注释。在“参考图书馆”中,我看到了四个杰克逊图书馆。在新项目中,我没有看到任何杰克逊图书馆。那是因为依赖关系没有正确解决?或者是jersey-2.0不再使用Jackson?
感谢任何帮助。
答案 0 :(得分:0)
Main类中的评论似乎完全是误导,因为:
无论如何,你仍然可以使用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);