【问题标题】:RESTful web service not producing or consuming JSONRESTful Web 服务不生成或使用 JSON
【发布时间】:2016-03-24 14:52:20
【问题描述】:

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

【问题讨论】:

标签: java json web-services rest


【解决方案1】:

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

【讨论】:

  • 当我尝试添加 Jersey 库时,EntityManager.createCriteriaQuery 变得未知。我发现原因是这个库包含 persistence.xml 但我不知道该怎么做才能使我的项目与 Jersey 一起工作。
  • 我看到是 Jersey 和 Hibernate 不兼容的问题。但是在你放新罐子之前,你一定有一个某种类型的泽西罐子?你不能更新一下吗?
【解决方案2】:

你需要下载这个文件

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

并在下一个路径中替换:

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

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

【讨论】:

猜你喜欢
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
相关资源
最近更新 更多