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

@consumes不能使用JSON

公冶昆杰
2023-03-14

我有以下rest服务:

@Path("/add")
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response add(SomeEntity entity) {
    entity = someService.addEntity(entity);
    return Response.ok("Entity added with id=" + entity.getId()).build();
}

我能做错什么?如何使我的应用程序从json消费实体,而不是LinkedHashMap

更新:实体类代码不包含任何有趣的内容,只有长ID和两个带有一些jpa注释的字符串字段。

Update2:完整StackTrace:

update3:我没有找到任何解决方案,所以我通过使用@formparams而不是JSON来替换method argument和@consumes。但无论如何都需要解决方案。

共有1个答案

胡玉书
2023-03-14

我在使用IDEA IDE中的REST客户端时也犯了同样的错误,我没有在请求中放置适当的内容类型:application/json,然后RESTeasy可以将java.util.LinkedHashMap转换为POST方法中的对象。

希望这对你的调查有所帮助,或者能给你一些提示。

 类似资料:
  • 问题内容: 我试图弄清楚@Consumes在这里如何工作。 我有一个如下所示的简化资源,并且我只希望此资源使用“ application / vnd.myApp + xml”。 我有以下测试用例: 从上面的3个测试中,#2和#3按预期工作。 至于#1,如果我没有设置content-type,为什么它也不会抛出415? 问题答案: 基于@Consumes api(http://jsr311.java

  • 我现在的目标是创建一个网格,这将是我的游戏的基础。当玩家从菜单开始游戏时,这个网格应该出现在游戏场景上。稍后,我希望能够根据用户输入更改电路板的大小 1.在eventhandler中创建网格 我的推理是当玩家点击启动游戏的“SinglePlayer”按钮时创建网格。根据这个推理,我将简单地获取根节点(一个组)的子节点,并将gridpane添加到其中 为什么我被困住了 下面的代码段显示处理on bu

  • 我正在Windows 2012R2上运行MySQL 5.6.26,在MySQL.ini中,所有内容都配置为使用UTF-8 Unicode(utf8)。 当我执行以下SQL命令时: 数据库返回给我以下数据: 118威尼斯3 5 0 56

  • 问题内容: 我的非ejb应用程序中如何包含以下代码。该代码有效。 在一个新的应用程序中,我正在使用EJB3 + JSF,并且想重用包含上面代码的库。我对新应用程序的持久性单元如下所示: 我的新应用程序在遇到此行时引发异常: 例外是: 这很清楚。问题是如何将代码转换为由容器管理的事务。大概需要对我的bean方法进行适当的注释…问题是如何? 问题答案: 与资源类型为local的实体管理器一起使用。如果

  • 我已经为spyder ide安装了anaconda。但我有很多问题。 runfile('C:/Users/Berk DOĞUŞ/Spyder Projects/DogrusalRegresyon.py',wdir='C:/Users/Berk DOĞUŞ/Spyder Projects')回溯(最后一次调用): 文件“”,第1行,在runfile中('C:/Users/Berk DOĞUŞ/Spy