使用Maven的JAX与JAXB

时间:2012-06-18 15:38:35

标签: json jaxb jersey jax-rs

我正在使用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

所以我只想要一个简单的bean作为JSON对象发送。我已经遵循了所有步骤,但我无法发送JSON对象(尽管我确实正确地接收了XML格式)。我获得以下异常: com.sun.jersey.api.MessageException:Java类de.vogella.jersey.jaxb.model.Todo的消息体编写器和Java类类de.vogella.jersey.jaxb。 model.Todo,找不到MIME媒体类型application / 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 个答案:

答案 0 :(得分: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>