我有一个项目,我在服务器端使用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的答案解释,但它没有改变任何内容。
答案 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。