2013-02-22 46 views
3

(我的第一篇,以#1,新Maven和新泽西;-)JSON支持在泽西岛2.0平方米的

试图建立一个独立的球衣,JSON的应用程序,我开始用最新MVN原型

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

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

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

...然后导入与MVN蚀到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})注释。在“参考图书馆”中,我看到四个杰克逊图书馆。在新项目中,我没有看到任何杰克逊库。那是因为依赖关系没有正确解析?还是球衣2.0不再使用杰克逊?

任何帮助表示赞赏。

+0

你能弄清楚? – necromancer 2013-04-29 03:07:11

回答

0

在Main类的评论似乎完全是误导,因为:

  • 新泽西媒体MOXY不包括org.glassfish.jersey.media.json.JsonJaxbBinder类
  • ResourceConfig没有按没有addBinder方法(至少在目前的2.0-rc1版本中)

无论如何,你仍然可以在Jersey 2.0上使用Jackson。只是包括依赖于杰克逊JAXRS JSON的提供商:

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

并注册JacksonJaxbJsonProvider:

rc.register(JacksonJaxbJsonProvider.class);