2012-06-18 117 views
1

我使用Jersey(與Jetty)和Maven來實現RESTful服務。我正在嘗試使用JAXB發送JSONObject,我遵循了一些教程,例如:http://jersey.java.net/nonav/documentation/1.7/user-guide.html#d4e919http://www.vogella.com/articles/REST/article.html使用Maven與JAXB的JSON

所以我只是想發送一個簡單的bean作爲JSON對象。我已經遵循了所有的步驟,但我無法發送JSON對象(儘管我正確接收了XML格式)。我獲得以下異常:com.sun.jersey.api.MessageException:Java類de.vogella.jersey.jaxb.model.Todo的消息正文編寫器,以及Java類類de.vogella.jersey.jaxb.model。 Todo和MIME媒體類型應用程序/ json未找到

我嘗試了不同的解決方案,但我沒有發現任何問題。 我想知道是否必須缺少任何依賴關係,或者我必須實現ContextResolver(儘管任何教程都將它們用於這些容易的對象)。

這些是我的依賴關係:

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <!-- Jersey --> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.11</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-servlet</artifactId> 
     <version>1.11</version> 
    </dependency> 

    <!-- Json --> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-json</artifactId> 
     <version>1.11</version> 
    </dependency> 

    <!-- Jetty --> 
    <dependency> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>jetty</artifactId> 
     <version>6.1.26</version> 
    </dependency> 

</dependencies> 

非常感謝您

回答

1

我已經找到了丟失的依賴:

<dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>eclipselink</artifactId> 
     <version>2.0.0</version> 
     <scope>compile</scope> 
    </dependency> 

我不得不添加存儲庫以及以避免丟失原型錯誤:

<repositories> 
    <repository> 
     <id>EclipseLink Repo</id> 
     <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url> 
    </repository> 
</repositories> 
+0

正在非Oracle JDK上運行?沒想過。 Oracle JDK捆綁了JAXB RI,因此您不需要eclipse鏈接(替代JAXB impl。)依賴關係。 –