2013-02-22 47 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);