@Consumes 不适用于 JSON

2023-12-28

我有以下休息服务:

@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();
}

将我的应用程序部署到 Wildfly 后,我使用 json 发送 HTTP 请求:{"id":0,"param1":value1,"param2":value2}并得到以下错误消息:

Bad arguments passed to org.jboss.resteasy.spi.metadata.ResourceMethod@4ab32ab7 ( java.util.LinkedHashMap {id=0, param1=value1, param2=value2} )带有 500 状态代码。

我能做错什么吗?如何让我的应用程序使用 json 中的实体而不是LinkedHashMap?

更新:实体类代码不包含任何有趣的内容,仅long id和两个String带有一些 jpa 注释的字段。

UPDATE2:完整的堆栈跟踪:

警告 [org.jboss.resteasy.core.ExceptionHandler](默认任务 2)执行 POST /rest/add 失败:org.jboss.resteasy.spi.InternalServerErrorException:传递给 org.jboss.resteasy.spi.metadata 的参数错误。 ResourceMethod@4ab32ab7 ( java.util.LinkedHashMap {id=0, param1=value1, param2=value2} ) 在 org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:177) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.0.8.Final.jar:] 在 org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.0.8.Final.jar:] 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] 在 io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45] 在 java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45] 引起原因:java.lang.IllegalArgumentException:参数类型不匹配 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)[rt.jar:1.7.0_45] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_45] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45] 在 java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45] 在 org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137) [resteasy-jaxrs-3.0.8.Final.jar:] ... 35 更多

UPDATE3:我没有找到任何解决方案,所以我替换了方法参数并@Consumes通过使用@FormParams 而不是 json。但无论如何,解决方案是必需的。


我在 IDEA IDE 中使用 REST Client 时遇到了完全相同的错误,我错过了在请求中放置正确的 Content-Type: application/json ,然后 RESTeasy 可以将 java.util.LinkedHashMap 转换为 POST 方法中的对象。

希望这对您有所帮助或者可以为您的调查提供一些提示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@Consumes 不适用于 JSON 的相关文章

  • 使用智能菜单jquery打印json

    menu name Computers children name Notebook children name Apple name Windows name Tablets children name Apple name Androi
  • 如何解析比 Java 中 NumberFormat 更严格的数字?

    我正在验证表单中的用户输入 我解析输入NumberFormat http docs oracle com javase 7 docs api java text NumberFormat html 但它是邪恶的 几乎允许任何事情 有没有办法
  • 将对象列表传递给 Freemarker 然后循环

    我已经熟悉了 FreeMarker 一个 Java 模板引擎 我已经能够通过哈希映射将对象传递给模板引擎了 这样就可以了 但是 一旦我尝试将任何类型的多个对象集传递给 FreeMarker 它就会给我一个 freemarker templa
  • Spring 可以理解 @Inject 替换 Weld 作为 JSR-299 实现吗?

    我从几个网页中注意到 Spring 3 0 显然支持来自 JSR 330 的 Inject 由于我们确实希望在 Web 应用程序和独立应用程序的库中使用 JSR 299 语法进行依赖项注入 并且有 Weld 的替代方案 因此如果 Sprin
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • com.google.gwt.dev.jjs.InternalCompilerException:访问期间出现意外错误

    我在使用版本 2 6 0 编译 gwt 应用程序时遇到以下错误 最初我用 gwt 版本 2 6 1 的 maven 编译它 然后尝试通过版本 2 6 0 的 eclipse 编译它 跟版本兼容有关系吗 com google gwt dev
  • 使用java在mysql中插入带有\\的文件路径

    我正在使用java制作一个独立的应用程序 并且我需要插入用户从文件选择器中选择的图像的路径 我正在获取文件的路径 但是当我将其存储在数据库 mysql 中时 它不会存储 所以当我检索该路径时 该文件不会显示 如何存储文件的路径 这样就可以使
  • Selenium Webdriver 中显式等待 findElements

    登录后 页面重定向到一个页面 我想等待页面加载 我在其中按 tagName 查找元素 By inputArea By tagName input List
  • Maven:缺少工件 org.springframework:spring:jar:4.2.6

    我在 SpringToolSuite 中有一个动态 Web 项目 它被转换为 Maven 项目 我遇到问题 缺少工件 org springframework spring jar 4 2 6 我已经尝试清理 重建和运行该项目 它给 读取文件
  • Javascript“命名空间”和 jQuery AJAX

    我正在使用此处列出的建议 http www odetocode com articles 473 aspx http www odetocode com articles 473 aspx 使用模拟的JavaScript AJAX网络聊天系
  • 内容安全策略:页面设置阻止自行加载资源?

    我有基于 Java 的 Web 应用程序运行在Tomcat http en wikipedia org wiki Apache Tomcat6 我的应用程序在本地主机和端口 9001 上运行 为了使我的应用程序更加安全并降低风险XSS ht
  • 为什么我无法解开根节点并反序列化对象数组?

    为什么我无法通过展开根节点来反序列化对象数组 import java io IOException import java util Arrays import java util List import org codehaus jack
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • 将 Class 对象转换为字节

    如果我有一个Class http java sun com j2se 1 5 0 docs api java lang Class html在运行时实例 我可以获得它的 byte 表示形式吗 我感兴趣的字节将在类文件格式 http java
  • Spring Data elasticsearch @Query 注解嵌套对象

    我有两节课 Document public class PracticeQuestion private int userId private List
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne
  • 如何在其他窗口之上生成独立的 JFileChooser 对话框?

    Like 其他一些人 https stackoverflow com questions 4161207 javavm windows 7 64bit jfilechooser not showing dialog box谁问过类似的问题
  • Java可以进行进程监控吗?

    是否可以用Java编写一个在托盘中运行的应用程序 并且当启动某个应用程序时 它可以检测到它 我想对某些程序执行此操作 以了解我每周使用它们多长时间 我是 Java 新手 所以我不知道 Java 是否是最适合此操作的语言 或者它是否具有对操作
  • LinkedBlockingQueue 抛出 InterruptedException

    我有这段代码 ALinkedBlockingQueue应该只抛出一个Exception如果在等待添加到队列时被中断 但这个队列是无限的 所以它应该尽快添加 为什么我的关闭方法会抛出一个InterruptedException private
  • Selenium Webdriver 中的 IF 语句

    我想知道是否有人可以帮助我解决我正在尝试解决的问题以及 Java 中 Webdriver 的 If 语句 当登录到我正在测试的应用程序时 可以在主页之前进入安全问题页面 如果是新用户等 我希望测试中的代码做的是 如果出现安全问题页面 请填写

随机推荐

  • Numpy - 多个外积

    我想知道是否有一种方法可以计算多个外部产品并将结果堆叠在单个操作中 假设我有一个 Nx1 向量并与 1xM 向量进行外积 结果将是一个 NxM 矩阵 如果我有一个 NxR 矩阵 A 和一个 RxM 矩阵 B 会怎么样 是否可以构造一个 Nx
  • .NET 中的类数量?

    NET 中的类总数是多少 那个数字 位于下载的 NET 2 0 NET 3 0 和 NET 运行时中 3 5 SP1 我们正在写一篇关于应用程序的科学论文 基于 NET 目前声明还有更多 超过6000个班级 但我不确定这是否正确 数字 例如
  • Antlr 外部输入

    我有一个语法文件 BoardFile g4 其中包含 仅相关部分 grammar Board Tokens GADGET squareBumper circleBumper triangleBumper leftFlipper rightF
  • 如何为 UIWebView 设置自定义键盘

    如何为 iOS7 及更高版本的可编辑 UIWebView 显示自定义键盘和输入附件视图 即 我如何设置并使用其中的值 UIWebView setInputView and UIWebView setInputAccessoryView 了解
  • Google Contacts API - 获取访问令牌(oauth)后

    我设法获取谷歌联系人 API 的访问令牌 但是当我尝试调用以检索登录用户的个人资料时 我收到 401 未经授权的错误 我做了一些研究 并按照 各种 谷歌文档中提到的步骤进行操作 例如this one http code google com
  • gremlin-python 不是可用的 GremlinScriptEngine

    我正在尝试使用 gremlin python 在 AWS neptune 上执行 lambda 函数 它击中了我gremlin python is not an available GremlinScriptEngine 有人可以帮忙解决这
  • Java 比较器 Arrays.sort()

    我想排序一个arrayJava中的二维数组根据一些规则 比如说距原点的距离 我看到了几种使用方法Arrays sort 1 Arrays sort points Comparator comparing p gt p 0 p 0 p 1 p
  • 如何在react中使用信号协议

    如何在 React 中使用信号协议 I used npm libsignal但即使这样我在node modules 中也遇到了错误 我尝试使用libsignal protocol js文件来自 https github com signal
  • 您可以使用 Cloud Formation 创建使用计划吗?

    就像标题中一样 我可以仅使用 Cloud Formation 在 AWS 上部署内容 现在 我尝试使用 API 密钥来保护我的 API 网关 看起来我需要一个使用计划 这里的文档似乎没有涵盖它 http docs aws amazon co
  • 如何创建属性包含点(句点)的 json 字符串?

    我正在尝试发送HttpRequest它需要一个像这样的 JSON 对象 some setting withperiods myvalue 我一直在为其他请求创建匿名对象 但我无法对这个请求执行此操作 因为名称包含一个点 我知道我可以创建一个
  • phpunit - 需要有关有风险的测试的帮助

    我正在为一个网站实施一些测试 在一次特定的测试中 出现了这样的结果 event test suite Example V test test Example V test test 3 status error time 13 469105
  • 如何从命令行编译 MSVC 项目中的单个源文件?

    我即将开始对我们的构建进行一些基准测试 测试 并且我想从命令行驱动整个过程 我知道DevEnv但我不相信它可以做我想做的事 如果我可以在单个项目中构建单个文件 我会很高兴 这可以做到吗 其神奇咒语如下 请注意 这仅在 VS 2010 上进行
  • Azure CloudBlockBlob.DeleteIfExists() - false 是否始终意味着 blob 不存在?

    我知道如果 blob 存在 CloudBlockBlob DeleteIfExists 返回 true 如果不存在则返回 false 不过 我很好奇 如果 blob 确实存在 但 Azure 中出现问题 导致文件删除无法发生 我找不到有关该
  • Angular 2 路由器中间的通配符选择器

    我正在尝试使用 Angular js 2 开发一个项目 我正在尝试使用路由器 我正在尝试创建一条带有参数的路线来捕获如下内容 m SOMETHING1 c SOME THING2 p SOMETHING3 请注意 SOME THING2 是
  • Python 贝叶斯信念网络分类器

    谁能推荐一个用 Python 实现的贝叶斯信念网络分类器 它可以根据描述多个相互关联对象的一系列事实的稀疏网络的输入生成信念概率 例如鉴于 FOL 中表述的事实 X 饿了 是一只猴子 正在吃东西 如下所示 isHungry x isMonk
  • 简单设置关闭显示:none / block with javascript

    我有以下代码 table tr class odd td Entry 1 td tr tr class even clickable td gt Entry 2 td tr tr class even td ul li Informatio
  • Spring Rest 模板中的哑剧类型无效?

    我只是想发出一个简单的 REST 请求 如下所示 String url some url MultiValueMap
  • 尝试通过 --experimental-loader 选项使用 mocha、ES6 模块和 ts-node

    我正在尝试获取 ts node 选项 experimental loader与摩卡一起工作 但运气不佳 在我开始尝试编译 ES6 模块之前 我曾经能够通过这种方式运行 mocha 测试 test nyc reporter html moch
  • 如何动态添加和加载入口点?

    我正在开发一个带有使用入口点的插件的 Slack 机器人 我想在运行时动态添加插件 我有一个具有以下结构的项目 my project dir my projects python code plugins plugin1 py plugin
  • @Consumes 不适用于 JSON

    我有以下休息服务 Path add POST Consumes MediaType APPLICATION JSON public Response add SomeEntity entity entity someService addE