2

这个问题已经在这个网站上有一个正确的答案。问题是问题是针对 Jersey 1.6的,而Jersey 1.17.1 的正确答案被埋在底部。我想我会为这个答案创建一个正确的问题,这样就可以更容易地为那些在这个问题上苦苦挣扎的人找到帮助(就像我一样)。

4

1 回答 1

6

首先,您需要将其添加到您的 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 添加到类路径中。仅添加 Jersey jars 是不够的,您还需要添加 jackson。我下载了包含 12 个不同 jar 的 zip。一旦我将所有 12 个 jars 添加到我的类路径中,我终于摆脱了错误并且返回 JSON 效果很好。

我希望这对某人有所帮助。

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

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

    <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>
于 2013-09-06T16:21:48.130 回答