如何使用JAXB使用Jersey 1.17.1生成JSON输出

时间:2013-09-05 22:08:34

标签: rest jaxb jersey jackson jersey-1.0

本网站上已有对此问题的正确答案。问题是question is for Jersey 1.6the correct answer for Jersey 1.17.1埋在底部。我想我会为这个答案创建一个正确的问题,这样就可以更容易地为那些正在努力解决这个问题的人找到帮助(就像我一样)。

1 个答案:

答案 0 :(得分:5)

首先,您需要将其添加到您的web.xml:

<servlet>
    <servlet-name>JerseyServlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>

然后,选择要通过网络序列化的任何类,并将此注释添加到它们的顶部:

import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class ...

然后将适当的jar添加到类路径中。添加泽西罐子是不够的,你还需要添加杰克逊。我下载了包含12个不同罐子的拉链。一旦我将所有12个罐子添加到我的类路径中,我终于摆脱了错误,并且很好地返回了JSON。

我希望这有助于某人。

使用12个Jars下载Zip 以下是包含12个jar文件的zip文件的链接:jersey-archive-1.17.zip

对于Maven用户: 将以下内容添加到您的pom.xml中以分别获取12个罐子:

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-xc</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>asm</groupId>
        <artifactId>asm</artifactId>
        <version>3.1</version>
    </dependency>