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