Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RESTful web服务不生成或使用JSON_Java_Json_Web Services_Rest - Fatal编程技术网

Java RESTful web服务不生成或使用JSON

Java RESTful web服务不生成或使用JSON,java,json,web-services,rest,Java,Json,Web Services,Rest,我有一个项目,我在服务器端使用RESTfulWeb服务来获取和发布数据。如果我将MediaType指定为XML(在@Consumes和@products中),它就可以正常工作,但在JSON中就不行了。 下面是一个方法示例 @GET @Path("{id}") @Produces({MediaType.APPLICATION_JSON}) public Product find(@PathParam("id") Integer id) { return super.find(id); }

我有一个项目,我在服务器端使用RESTfulWeb服务来获取和发布数据。如果我将MediaType指定为XML(在@Consumes和@products中),它就可以正常工作,但在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

然而,我试图按照这个问题的答案进行解释,但没有任何改变。

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

您需要下载此文件

并在下一路径中替换:

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


在我的例子中,打开和关闭IDE后,我使用Netbeans,测试RESTful。

当我尝试添加Jersey库时,EntityManager.createCriteriaQuery变得未知。我发现原因是该库包含persistence.xml,但我不知道如何使我的项目与Jersey一起工作。我看到它是Jersey和Hibernate不兼容问题。但在你安装新的jar之前,你一定有一个某种类型的Jersey jar?你不能更新它吗?检查这篇文章:将返回类型更改为
Response
刚刚尝试了这里提到的解决方案,该解决方案描述了@Victor Jimenez answer中提到的更新jar的必要步骤。效果很好。