当前位置: 首页 > 知识库问答 >
问题:

在带有Jersey的REST web服务中返回JSON时,未找到MessageBodyWriter的media type=application/JSON

蒙经纶
2023-03-14

我试图使用Jersey创建一个非常简单的REST服务。这是服务代码

@Path("/UserService")
public class UserService {

    @GET
    @Path("/users")
    @Produces(MediaType.APPLICATION_XML)
    public List<User> getUsers() {
        User user = new User(1, "Thomas", "Greene");
        List<User> userList = new ArrayList<User>();
        userList.add(user);
        return userList;
    }
}

当我通过Postman运行它时,它会返回一个XML响应

现在,我想要返回一个JSON响应。因此,我将mediatype更改为application/json:

@Path("/UserService")
public class UserService {

    @GET
    @Path("/users")
    @Produces(MediaType.APPLICATION_JSON)
    public List<User> getUsers(){ 
        User user = new User(1, "Thomas", "Greene");
        List<User> userList = new ArrayList<User>();
        userList.add(user);
        return userList;
   }    
}

共有1个答案

澹台庆
2023-03-14

在类路径上需要一个json序列化器来实现这一功能。

只要加上杰克逊和泽西将在作家中使用这个。例如。如果您使用的是maven,请将其添加到pom.xml中

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.7.4</version>
</dependency>
 类似资料:
  • 每次我尝试调用REST服务时,都会收到以下错误消息 以下是REST服务(剥离到相关部分): JSON类 波姆。xml(有趣的部分) 我的设置是: JDK8/JEE7(build 1.8.0_51-b16) 这就是我迄今为止所尝试的: 找不到媒体类型为application/json的MessageBodyWriter- 我仍然认为这是一个依赖问题。但是我不知道会有什么问题。

  • 设置看起来很简单,但它不起作用,除了以下例外: 我一直无法弄清楚我错过了什么(我已经经历了许多建议的答案,但都无济于事),可以使用另一套眼睛/视角。

  • 我知道有这么多关于这个的问题...但是它们不适合我,我尝试在eclipse中重新安装maven(因为创建一个新的maven项目或转换一个现有的动态web项目给我的pom.xml错误),但它一直说已经安装了...所以我质疑这样一个事实,即不使用maven就可以从rest web服务获得json吗?我已经从ws中获得了string/xml/html,现在我创建了一个新类,如下所示: 我还引用了这些库:

  • 问题内容: 我想将JSON-Post中的值解析为Java-Variables。但是它们总是空的! JSON发布: 我尝试将其解析为Java变量: 如果我这样尝试: Tomcat说: Java类int,Java类型int和MIME媒体类型application / json的消息正文阅读器;找不到字符集= UTF-8。 任何帮助都很好,我只是不明白。 问题答案: 您需要创建一个POGO,Jersey

  • 我正在使用JAX RS 2创建Rest客户端。客户端可以工作,但只有在我的IDE(IntellIJ IDEA)中,当我用Maven构建它时,使用Maven汇编插件并运行jar,它就不再工作了。 我收到的MessageBodyWriter找不到媒体类型=应用程序/json错误。 我尝试过添加其他帖子中建议的更多依赖项,但我不认为依赖项是一个问题,因为它在IDE中运行。 下面是引发异常的代码 调试后,

  • 我在使用JAX-RS服务作为JSON时遇到了一些问题。