RESTful Web服务不生成或使用JSON

时间:2015-12-17 23:52:22

标签: java json web-services rest

我有一个项目,我在服务器端使用RESTful Web服务来获取和发布数据。如果我将MediaType指定为XML(在@Consumes和@Produces中,但它不适用于JSON,它可以正常工作)。 这是一个方法的例子

@GET
@Path("{id}")
@Produces({MediaType.APPLICATION_JSON})
public Product find(@PathParam("id") Integer id) {
    return super.find(id);
}

当我尝试调用该服务时,它会引发以下异常:

javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper

但是,我尝试按照这个问题how correctly produce json by restful web service的答案解释,但它没有改变任何内容。

2 个答案:

答案 0 :(得分:2)

Eclipse Link中似乎有一个bug。我想您可能需要更新到EclipseLink 2.6.1和Jersey 2.19或更高版本,另请参阅this link。否则,您可能缺少org.eclipse.persistence.jaxb.BeanValidationHelper的依赖项,因为该类存在于类路径中,但在尝试加载到JVM时会出现异常。

答案 1 :(得分:1)

你需要下载这个archieve

https://mega.nz/#!Ck0lVSRA!_KIjTl_8scQrak7jNTBepv3oqSKgeYsAVqjlvAarTbU

并在下一条路径中替换:

C:\ Program Files \ glassfish-4.1.1 \ glassfish \ modules

在我打开和关闭IDE的情况下,我使用Netbeans,测试RESTful。